diff --git a/build.log b/build.log new file mode 100644 index 000000000..c6c960350 --- /dev/null +++ b/build.log @@ -0,0 +1,3377 @@ +In file included from src/data/pokemon/species_info.h:67, + from src/pokemon.c:683: +src/data/pokemon/species_info/gen_8_families.h:2400: `sHydrappleTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_8_families.h:2400: initializer element for `gSpeciesInfo[1426].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_8_families.h:2401: initializer element for `gSpeciesInfo[1426]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2401: initializer element for `gSpeciesInfo[1426]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2414: initializer element for `gSpeciesInfo[843].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2422: initializer element for `gSpeciesInfo[843].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2423: initializer element for `gSpeciesInfo[843].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2425: initializer element for `gSpeciesInfo[843].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2428: initializer element for `gSpeciesInfo[843].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2434: initializer element for `gSpeciesInfo[843].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2455: initializer element for `gSpeciesInfo[843].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2466: initializer element for `gSpeciesInfo[844].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2474: initializer element for `gSpeciesInfo[844].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2475: initializer element for `gSpeciesInfo[844].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2477: initializer element for `gSpeciesInfo[844].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2480: initializer element for `gSpeciesInfo[844].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2487: initializer element for `gSpeciesInfo[844].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2521: initializer element for `gSpeciesInfo[1512].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2529: initializer element for `gSpeciesInfo[1512].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2530: initializer element for `gSpeciesInfo[1512].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2532: initializer element for `gSpeciesInfo[1512].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2535: initializer element for `gSpeciesInfo[1512].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2542: initializer element for `gSpeciesInfo[1512].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2579: initializer element for `gSpeciesInfo[845].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2587: initializer element for `gSpeciesInfo[845].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2588: initializer element for `gSpeciesInfo[845].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2590: initializer element for `gSpeciesInfo[845].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2593: initializer element for `gSpeciesInfo[845].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2599: initializer element for `gSpeciesInfo[845].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2632: initializer element for `gSpeciesInfo[1211].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2640: initializer element for `gSpeciesInfo[1211].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2641: initializer element for `gSpeciesInfo[1211].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2643: initializer element for `gSpeciesInfo[1211].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2646: initializer element for `gSpeciesInfo[1211].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2653: initializer element for `gSpeciesInfo[1211].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2686: initializer element for `gSpeciesInfo[1212].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2694: initializer element for `gSpeciesInfo[1212].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2695: initializer element for `gSpeciesInfo[1212].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2697: initializer element for `gSpeciesInfo[1212].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2700: initializer element for `gSpeciesInfo[1212].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2707: initializer element for `gSpeciesInfo[1212].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2742: initializer element for `gSpeciesInfo[846].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2750: initializer element for `gSpeciesInfo[846].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2751: initializer element for `gSpeciesInfo[846].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2753: initializer element for `gSpeciesInfo[846].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2756: initializer element for `gSpeciesInfo[846].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2763: initializer element for `gSpeciesInfo[846].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2784: initializer element for `gSpeciesInfo[846].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2795: initializer element for `gSpeciesInfo[847].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2803: initializer element for `gSpeciesInfo[847].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2804: initializer element for `gSpeciesInfo[847].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2806: initializer element for `gSpeciesInfo[847].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2809: initializer element for `gSpeciesInfo[847].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2816: initializer element for `gSpeciesInfo[847].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2849: initializer element for `gSpeciesInfo[848].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2857: initializer element for `gSpeciesInfo[848].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2858: initializer element for `gSpeciesInfo[848].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2860: initializer element for `gSpeciesInfo[848].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2863: initializer element for `gSpeciesInfo[848].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2870: initializer element for `gSpeciesInfo[848].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2892: initializer element for `gSpeciesInfo[848].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2903: initializer element for `gSpeciesInfo[849].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2911: initializer element for `gSpeciesInfo[849].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2912: initializer element for `gSpeciesInfo[849].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2914: initializer element for `gSpeciesInfo[849].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2917: initializer element for `gSpeciesInfo[849].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2924: initializer element for `gSpeciesInfo[849].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2958: initializer element for `gSpeciesInfo[1513].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2966: initializer element for `gSpeciesInfo[1513].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2967: initializer element for `gSpeciesInfo[1513].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2969: initializer element for `gSpeciesInfo[1513].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2972: initializer element for `gSpeciesInfo[1513].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3010: initializer element for `gSpeciesInfo[1213].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3018: initializer element for `gSpeciesInfo[1213].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3019: initializer element for `gSpeciesInfo[1213].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3021: initializer element for `gSpeciesInfo[1213].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3024: initializer element for `gSpeciesInfo[1213].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3030: initializer element for `gSpeciesInfo[1213].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3064: initializer element for `gSpeciesInfo[1514].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3072: initializer element for `gSpeciesInfo[1514].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3073: initializer element for `gSpeciesInfo[1514].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3075: initializer element for `gSpeciesInfo[1514].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3078: initializer element for `gSpeciesInfo[1514].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3118: initializer element for `gSpeciesInfo[850].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3126: initializer element for `gSpeciesInfo[850].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3127: initializer element for `gSpeciesInfo[850].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3129: initializer element for `gSpeciesInfo[850].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3132: initializer element for `gSpeciesInfo[850].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3138: initializer element for `gSpeciesInfo[850].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3159: initializer element for `gSpeciesInfo[850].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3170: initializer element for `gSpeciesInfo[851].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3178: initializer element for `gSpeciesInfo[851].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3179: initializer element for `gSpeciesInfo[851].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3181: initializer element for `gSpeciesInfo[851].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3184: initializer element for `gSpeciesInfo[851].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3191: initializer element for `gSpeciesInfo[851].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3225: initializer element for `gSpeciesInfo[1515].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3233: initializer element for `gSpeciesInfo[1515].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3234: initializer element for `gSpeciesInfo[1515].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3236: initializer element for `gSpeciesInfo[1515].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3239: initializer element for `gSpeciesInfo[1515].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3246: initializer element for `gSpeciesInfo[1515].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3283: initializer element for `gSpeciesInfo[852].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3291: initializer element for `gSpeciesInfo[852].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3292: initializer element for `gSpeciesInfo[852].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3294: initializer element for `gSpeciesInfo[852].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3297: initializer element for `gSpeciesInfo[852].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3304: initializer element for `gSpeciesInfo[852].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3325: initializer element for `gSpeciesInfo[852].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3336: initializer element for `gSpeciesInfo[853].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3344: initializer element for `gSpeciesInfo[853].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3345: initializer element for `gSpeciesInfo[853].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3347: initializer element for `gSpeciesInfo[853].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3350: initializer element for `gSpeciesInfo[853].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3356: initializer element for `gSpeciesInfo[853].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3389: initializer element for `gSpeciesInfo[854].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3397: initializer element for `gSpeciesInfo[854].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3398: initializer element for `gSpeciesInfo[854].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3400: initializer element for `gSpeciesInfo[854].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3403: initializer element for `gSpeciesInfo[854].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3409: initializer element for `gSpeciesInfo[854].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3432: initializer element for `gSpeciesInfo[854].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3443: initializer element for `gSpeciesInfo[1214].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3451: initializer element for `gSpeciesInfo[1214].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3452: initializer element for `gSpeciesInfo[1214].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3454: initializer element for `gSpeciesInfo[1214].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3457: initializer element for `gSpeciesInfo[1214].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3464: initializer element for `gSpeciesInfo[1214].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3487: initializer element for `gSpeciesInfo[1214].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3498: initializer element for `gSpeciesInfo[855].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3506: initializer element for `gSpeciesInfo[855].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3507: initializer element for `gSpeciesInfo[855].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3509: initializer element for `gSpeciesInfo[855].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3512: initializer element for `gSpeciesInfo[855].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3518: initializer element for `gSpeciesInfo[855].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3551: initializer element for `gSpeciesInfo[1215].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3559: initializer element for `gSpeciesInfo[1215].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3560: initializer element for `gSpeciesInfo[1215].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3562: initializer element for `gSpeciesInfo[1215].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3565: initializer element for `gSpeciesInfo[1215].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3572: initializer element for `gSpeciesInfo[1215].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3607: initializer element for `gSpeciesInfo[856].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3615: initializer element for `gSpeciesInfo[856].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3616: initializer element for `gSpeciesInfo[856].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3618: initializer element for `gSpeciesInfo[856].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3621: initializer element for `gSpeciesInfo[856].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3628: initializer element for `gSpeciesInfo[856].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3649: initializer element for `gSpeciesInfo[856].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3660: initializer element for `gSpeciesInfo[857].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3668: initializer element for `gSpeciesInfo[857].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3669: initializer element for `gSpeciesInfo[857].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3671: initializer element for `gSpeciesInfo[857].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3674: initializer element for `gSpeciesInfo[857].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3680: initializer element for `gSpeciesInfo[857].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3701: initializer element for `gSpeciesInfo[857].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3712: initializer element for `gSpeciesInfo[858].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3720: initializer element for `gSpeciesInfo[858].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3721: initializer element for `gSpeciesInfo[858].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3723: initializer element for `gSpeciesInfo[858].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3726: initializer element for `gSpeciesInfo[858].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3732: initializer element for `gSpeciesInfo[858].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3766: initializer element for `gSpeciesInfo[1516].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3774: initializer element for `gSpeciesInfo[1516].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3775: initializer element for `gSpeciesInfo[1516].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3777: initializer element for `gSpeciesInfo[1516].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3780: initializer element for `gSpeciesInfo[1516].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3787: initializer element for `gSpeciesInfo[1516].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3824: initializer element for `gSpeciesInfo[859].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3832: initializer element for `gSpeciesInfo[859].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3833: initializer element for `gSpeciesInfo[859].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3835: initializer element for `gSpeciesInfo[859].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3838: initializer element for `gSpeciesInfo[859].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3845: initializer element for `gSpeciesInfo[859].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3866: initializer element for `gSpeciesInfo[859].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3877: initializer element for `gSpeciesInfo[860].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3885: initializer element for `gSpeciesInfo[860].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3886: initializer element for `gSpeciesInfo[860].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3888: initializer element for `gSpeciesInfo[860].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3891: initializer element for `gSpeciesInfo[860].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3898: initializer element for `gSpeciesInfo[860].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3919: initializer element for `gSpeciesInfo[860].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3931: initializer element for `gSpeciesInfo[861].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3939: initializer element for `gSpeciesInfo[861].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3940: initializer element for `gSpeciesInfo[861].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3942: initializer element for `gSpeciesInfo[861].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3945: initializer element for `gSpeciesInfo[861].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3951: initializer element for `gSpeciesInfo[861].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3985: initializer element for `gSpeciesInfo[1517].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3993: initializer element for `gSpeciesInfo[1517].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3994: initializer element for `gSpeciesInfo[1517].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3996: initializer element for `gSpeciesInfo[1517].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3999: initializer element for `gSpeciesInfo[1517].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4006: initializer element for `gSpeciesInfo[1517].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4043: initializer element for `gSpeciesInfo[868].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4051: initializer element for `gSpeciesInfo[868].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4052: initializer element for `gSpeciesInfo[868].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4054: initializer element for `gSpeciesInfo[868].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4057: initializer element for `gSpeciesInfo[868].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4063: initializer element for `gSpeciesInfo[868].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4093: initializer element for `gSpeciesInfo[868].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4216: initializer element for `gSpeciesInfo[1518].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4219: initializer element for `gSpeciesInfo[1518].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4226: initializer element for `gSpeciesInfo[1518].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4263: initializer element for `gSpeciesInfo[870].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4272: initializer element for `gSpeciesInfo[870].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4273: initializer element for `gSpeciesInfo[870].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4275: initializer element for `gSpeciesInfo[870].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4278: initializer element for `gSpeciesInfo[870].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4283: initializer element for `gSpeciesInfo[870].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4316: initializer element for `gSpeciesInfo[871].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4324: initializer element for `gSpeciesInfo[871].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4325: initializer element for `gSpeciesInfo[871].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4327: initializer element for `gSpeciesInfo[871].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4330: initializer element for `gSpeciesInfo[871].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4336: initializer element for `gSpeciesInfo[871].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4369: initializer element for `gSpeciesInfo[872].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4378: initializer element for `gSpeciesInfo[872].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4379: initializer element for `gSpeciesInfo[872].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4381: initializer element for `gSpeciesInfo[872].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4384: initializer element for `gSpeciesInfo[872].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4391: initializer element for `gSpeciesInfo[872].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4412: initializer element for `gSpeciesInfo[872].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4423: initializer element for `gSpeciesInfo[873].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4431: initializer element for `gSpeciesInfo[873].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4432: initializer element for `gSpeciesInfo[873].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4434: initializer element for `gSpeciesInfo[873].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4437: initializer element for `gSpeciesInfo[873].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4444: initializer element for `gSpeciesInfo[873].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4478: initializer element for `gSpeciesInfo[874].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4486: initializer element for `gSpeciesInfo[874].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4487: initializer element for `gSpeciesInfo[874].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4489: initializer element for `gSpeciesInfo[874].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4492: initializer element for `gSpeciesInfo[874].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4499: initializer element for `gSpeciesInfo[874].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4532: initializer element for `gSpeciesInfo[875].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4540: initializer element for `gSpeciesInfo[875].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4541: initializer element for `gSpeciesInfo[875].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4543: initializer element for `gSpeciesInfo[875].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4546: initializer element for `gSpeciesInfo[875].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4553: initializer element for `gSpeciesInfo[875].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4586: initializer element for `gSpeciesInfo[1224].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4594: initializer element for `gSpeciesInfo[1224].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4595: initializer element for `gSpeciesInfo[1224].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4597: initializer element for `gSpeciesInfo[1224].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4600: initializer element for `gSpeciesInfo[1224].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4607: initializer element for `gSpeciesInfo[1224].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4642: initializer element for `gSpeciesInfo[876].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4650: initializer element for `gSpeciesInfo[876].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4651: initializer element for `gSpeciesInfo[876].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4653: initializer element for `gSpeciesInfo[876].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4656: initializer element for `gSpeciesInfo[876].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4663: initializer element for `gSpeciesInfo[876].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4695: initializer element for `gSpeciesInfo[1225].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4703: initializer element for `gSpeciesInfo[1225].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4704: initializer element for `gSpeciesInfo[1225].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4706: initializer element for `gSpeciesInfo[1225].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4709: initializer element for `gSpeciesInfo[1225].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4716: initializer element for `gSpeciesInfo[1225].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4750: initializer element for `gSpeciesInfo[877].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4758: initializer element for `gSpeciesInfo[877].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4759: initializer element for `gSpeciesInfo[877].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4761: initializer element for `gSpeciesInfo[877].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4764: initializer element for `gSpeciesInfo[877].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4771: initializer element for `gSpeciesInfo[877].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4804: initializer element for `gSpeciesInfo[1226].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4812: initializer element for `gSpeciesInfo[1226].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4813: initializer element for `gSpeciesInfo[1226].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4815: initializer element for `gSpeciesInfo[1226].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4818: initializer element for `gSpeciesInfo[1226].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4825: initializer element for `gSpeciesInfo[1226].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4860: initializer element for `gSpeciesInfo[878].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4869: initializer element for `gSpeciesInfo[878].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4870: initializer element for `gSpeciesInfo[878].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4872: initializer element for `gSpeciesInfo[878].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4875: initializer element for `gSpeciesInfo[878].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4882: initializer element for `gSpeciesInfo[878].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4903: initializer element for `gSpeciesInfo[878].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4914: initializer element for `gSpeciesInfo[879].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4923: initializer element for `gSpeciesInfo[879].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4924: initializer element for `gSpeciesInfo[879].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4926: initializer element for `gSpeciesInfo[879].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4929: initializer element for `gSpeciesInfo[879].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4935: initializer element for `gSpeciesInfo[879].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4969: initializer element for `gSpeciesInfo[1519].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4978: initializer element for `gSpeciesInfo[1519].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4979: initializer element for `gSpeciesInfo[1519].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4981: initializer element for `gSpeciesInfo[1519].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4984: initializer element for `gSpeciesInfo[1519].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4991: initializer element for `gSpeciesInfo[1519].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5028: initializer element for `gSpeciesInfo[880].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5036: initializer element for `gSpeciesInfo[880].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5037: initializer element for `gSpeciesInfo[880].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5039: initializer element for `gSpeciesInfo[880].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5042: initializer element for `gSpeciesInfo[880].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5049: initializer element for `gSpeciesInfo[880].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5082: initializer element for `gSpeciesInfo[881].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5090: initializer element for `gSpeciesInfo[881].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5091: initializer element for `gSpeciesInfo[881].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5093: initializer element for `gSpeciesInfo[881].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5096: initializer element for `gSpeciesInfo[881].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5102: initializer element for `gSpeciesInfo[881].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5135: initializer element for `gSpeciesInfo[882].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5143: initializer element for `gSpeciesInfo[882].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5144: initializer element for `gSpeciesInfo[882].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5146: initializer element for `gSpeciesInfo[882].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5149: initializer element for `gSpeciesInfo[882].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5156: initializer element for `gSpeciesInfo[882].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5189: initializer element for `gSpeciesInfo[883].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5197: initializer element for `gSpeciesInfo[883].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5198: initializer element for `gSpeciesInfo[883].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5200: initializer element for `gSpeciesInfo[883].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5203: initializer element for `gSpeciesInfo[883].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5210: initializer element for `gSpeciesInfo[883].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5243: initializer element for `gSpeciesInfo[884].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5251: initializer element for `gSpeciesInfo[884].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5252: initializer element for `gSpeciesInfo[884].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5254: initializer element for `gSpeciesInfo[884].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5257: initializer element for `gSpeciesInfo[884].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5263: initializer element for `gSpeciesInfo[884].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5286: initializer element for `gSpeciesInfo[884].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5298: initializer element for `gSpeciesInfo[1520].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5306: initializer element for `gSpeciesInfo[1520].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5307: initializer element for `gSpeciesInfo[1520].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5309: initializer element for `gSpeciesInfo[1520].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5312: initializer element for `gSpeciesInfo[1520].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5319: initializer element for `gSpeciesInfo[1520].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5355: initializer element for `gSpeciesInfo[1425].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5363: initializer element for `gSpeciesInfo[1425].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5364: initializer element for `gSpeciesInfo[1425].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5366: initializer element for `gSpeciesInfo[1425].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5369: initializer element for `gSpeciesInfo[1425].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5376: initializer element for `gSpeciesInfo[1425].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5396: `sArchaludonTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_8_families.h:5396: initializer element for `gSpeciesInfo[1425].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5410: initializer element for `gSpeciesInfo[885].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5418: initializer element for `gSpeciesInfo[885].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5419: initializer element for `gSpeciesInfo[885].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5421: initializer element for `gSpeciesInfo[885].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5424: initializer element for `gSpeciesInfo[885].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5431: initializer element for `gSpeciesInfo[885].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5453: initializer element for `gSpeciesInfo[885].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5464: initializer element for `gSpeciesInfo[886].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5472: initializer element for `gSpeciesInfo[886].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5473: initializer element for `gSpeciesInfo[886].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5475: initializer element for `gSpeciesInfo[886].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5478: initializer element for `gSpeciesInfo[886].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5484: initializer element for `gSpeciesInfo[886].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5506: initializer element for `gSpeciesInfo[886].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5517: initializer element for `gSpeciesInfo[887].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5525: initializer element for `gSpeciesInfo[887].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5526: initializer element for `gSpeciesInfo[887].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5528: initializer element for `gSpeciesInfo[887].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5531: initializer element for `gSpeciesInfo[887].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5538: initializer element for `gSpeciesInfo[887].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5572: initializer element for `gSpeciesInfo[888].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5580: initializer element for `gSpeciesInfo[888].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5581: initializer element for `gSpeciesInfo[888].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5583: initializer element for `gSpeciesInfo[888].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5586: initializer element for `gSpeciesInfo[888].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5592: initializer element for `gSpeciesInfo[888].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5626: initializer element for `gSpeciesInfo[1227].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5634: initializer element for `gSpeciesInfo[1227].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5635: initializer element for `gSpeciesInfo[1227].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5637: initializer element for `gSpeciesInfo[1227].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5640: initializer element for `gSpeciesInfo[1227].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5647: initializer element for `gSpeciesInfo[1227].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5683: initializer element for `gSpeciesInfo[889].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5691: initializer element for `gSpeciesInfo[889].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5692: initializer element for `gSpeciesInfo[889].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5694: initializer element for `gSpeciesInfo[889].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5697: initializer element for `gSpeciesInfo[889].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5704: initializer element for `gSpeciesInfo[889].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5738: initializer element for `gSpeciesInfo[1228].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5746: initializer element for `gSpeciesInfo[1228].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5747: initializer element for `gSpeciesInfo[1228].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5749: initializer element for `gSpeciesInfo[1228].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5752: initializer element for `gSpeciesInfo[1228].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5759: initializer element for `gSpeciesInfo[1228].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5795: initializer element for `gSpeciesInfo[890].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5803: initializer element for `gSpeciesInfo[890].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5804: initializer element for `gSpeciesInfo[890].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5806: initializer element for `gSpeciesInfo[890].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5809: initializer element for `gSpeciesInfo[890].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5816: initializer element for `gSpeciesInfo[890].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5850: initializer element for `gSpeciesInfo[1229].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5858: initializer element for `gSpeciesInfo[1229].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5859: initializer element for `gSpeciesInfo[1229].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5861: initializer element for `gSpeciesInfo[1229].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5864: initializer element for `gSpeciesInfo[1229].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5871: initializer element for `gSpeciesInfo[1229].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5907: initializer element for `gSpeciesInfo[891].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5915: initializer element for `gSpeciesInfo[891].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5916: initializer element for `gSpeciesInfo[891].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5918: initializer element for `gSpeciesInfo[891].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5921: initializer element for `gSpeciesInfo[891].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5927: initializer element for `gSpeciesInfo[891].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5952: initializer element for `gSpeciesInfo[891].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5963: initializer element for `gSpeciesInfo[892].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5971: initializer element for `gSpeciesInfo[892].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5972: initializer element for `gSpeciesInfo[892].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5974: initializer element for `gSpeciesInfo[892].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5977: initializer element for `gSpeciesInfo[892].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5984: initializer element for `gSpeciesInfo[892].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6019: initializer element for `gSpeciesInfo[1521].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6027: initializer element for `gSpeciesInfo[1521].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6028: initializer element for `gSpeciesInfo[1521].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6030: initializer element for `gSpeciesInfo[1521].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6033: initializer element for `gSpeciesInfo[1521].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6040: initializer element for `gSpeciesInfo[1521].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6075: initializer element for `gSpeciesInfo[1230].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6083: initializer element for `gSpeciesInfo[1230].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6084: initializer element for `gSpeciesInfo[1230].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6086: initializer element for `gSpeciesInfo[1230].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6089: initializer element for `gSpeciesInfo[1230].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6096: initializer element for `gSpeciesInfo[1230].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6131: initializer element for `gSpeciesInfo[1522].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6139: initializer element for `gSpeciesInfo[1522].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6140: initializer element for `gSpeciesInfo[1522].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6142: initializer element for `gSpeciesInfo[1522].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6145: initializer element for `gSpeciesInfo[1522].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6152: initializer element for `gSpeciesInfo[1522].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6190: initializer element for `gSpeciesInfo[893].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6198: initializer element for `gSpeciesInfo[893].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6199: initializer element for `gSpeciesInfo[893].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6201: initializer element for `gSpeciesInfo[893].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6204: initializer element for `gSpeciesInfo[893].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6211: initializer element for `gSpeciesInfo[893].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6243: initializer element for `gSpeciesInfo[1231].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6251: initializer element for `gSpeciesInfo[1231].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6252: initializer element for `gSpeciesInfo[1231].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6254: initializer element for `gSpeciesInfo[1231].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6257: initializer element for `gSpeciesInfo[1231].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6264: initializer element for `gSpeciesInfo[1231].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6299: initializer element for `gSpeciesInfo[894].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6307: initializer element for `gSpeciesInfo[894].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6308: initializer element for `gSpeciesInfo[894].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6310: initializer element for `gSpeciesInfo[894].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6313: initializer element for `gSpeciesInfo[894].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6320: initializer element for `gSpeciesInfo[894].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6355: initializer element for `gSpeciesInfo[895].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6363: initializer element for `gSpeciesInfo[895].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6364: initializer element for `gSpeciesInfo[895].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6366: initializer element for `gSpeciesInfo[895].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6369: initializer element for `gSpeciesInfo[895].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6376: initializer element for `gSpeciesInfo[895].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6411: initializer element for `gSpeciesInfo[896].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6419: initializer element for `gSpeciesInfo[896].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6420: initializer element for `gSpeciesInfo[896].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6422: initializer element for `gSpeciesInfo[896].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6425: initializer element for `gSpeciesInfo[896].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6431: initializer element for `gSpeciesInfo[896].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6465: initializer element for `gSpeciesInfo[897].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6473: initializer element for `gSpeciesInfo[897].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6474: initializer element for `gSpeciesInfo[897].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6476: initializer element for `gSpeciesInfo[897].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6479: initializer element for `gSpeciesInfo[897].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6486: initializer element for `gSpeciesInfo[897].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6520: initializer element for `gSpeciesInfo[898].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6528: initializer element for `gSpeciesInfo[898].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6529: initializer element for `gSpeciesInfo[898].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6531: initializer element for `gSpeciesInfo[898].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6534: initializer element for `gSpeciesInfo[898].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6541: initializer element for `gSpeciesInfo[898].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6575: initializer element for `gSpeciesInfo[1232].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6583: initializer element for `gSpeciesInfo[1232].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6584: initializer element for `gSpeciesInfo[1232].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6586: initializer element for `gSpeciesInfo[1232].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6589: initializer element for `gSpeciesInfo[1232].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6596: initializer element for `gSpeciesInfo[1232].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6630: initializer element for `gSpeciesInfo[1233].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6638: initializer element for `gSpeciesInfo[1233].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6639: initializer element for `gSpeciesInfo[1233].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6641: initializer element for `gSpeciesInfo[1233].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6644: initializer element for `gSpeciesInfo[1233].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6651: initializer element for `gSpeciesInfo[1233].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6688: initializer element for `gSpeciesInfo[905].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6696: initializer element for `gSpeciesInfo[905].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6697: initializer element for `gSpeciesInfo[905].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6699: initializer element for `gSpeciesInfo[905].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6702: initializer element for `gSpeciesInfo[905].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6709: initializer element for `gSpeciesInfo[905].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6743: initializer element for `gSpeciesInfo[1103].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6751: initializer element for `gSpeciesInfo[1103].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6752: initializer element for `gSpeciesInfo[1103].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6754: initializer element for `gSpeciesInfo[1103].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6757: initializer element for `gSpeciesInfo[1103].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6764: initializer element for `gSpeciesInfo[1103].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +In file included from src/data/pokemon/species_info.h:68, + from src/pokemon.c:683: +src/data/pokemon/species_info/gen_9_families.h:15: initializer element for `gSpeciesInfo[1289].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:23: initializer element for `gSpeciesInfo[1289].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:24: initializer element for `gSpeciesInfo[1289].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:26: initializer element for `gSpeciesInfo[1289].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:29: initializer element for `gSpeciesInfo[1289].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:36: initializer element for `gSpeciesInfo[1289].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:57: initializer element for `gSpeciesInfo[1289].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:68: initializer element for `gSpeciesInfo[1290].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:76: initializer element for `gSpeciesInfo[1290].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:77: initializer element for `gSpeciesInfo[1290].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:79: initializer element for `gSpeciesInfo[1290].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:82: initializer element for `gSpeciesInfo[1290].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:89: initializer element for `gSpeciesInfo[1290].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:110: initializer element for `gSpeciesInfo[1290].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:121: initializer element for `gSpeciesInfo[1291].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:129: initializer element for `gSpeciesInfo[1291].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:130: initializer element for `gSpeciesInfo[1291].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:132: initializer element for `gSpeciesInfo[1291].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:135: initializer element for `gSpeciesInfo[1291].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:142: initializer element for `gSpeciesInfo[1291].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:175: initializer element for `gSpeciesInfo[1292].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:183: initializer element for `gSpeciesInfo[1292].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:184: initializer element for `gSpeciesInfo[1292].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:186: initializer element for `gSpeciesInfo[1292].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:189: initializer element for `gSpeciesInfo[1292].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:196: initializer element for `gSpeciesInfo[1292].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:217: initializer element for `gSpeciesInfo[1292].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:228: initializer element for `gSpeciesInfo[1293].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:236: initializer element for `gSpeciesInfo[1293].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:237: initializer element for `gSpeciesInfo[1293].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:239: initializer element for `gSpeciesInfo[1293].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:242: initializer element for `gSpeciesInfo[1293].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:249: initializer element for `gSpeciesInfo[1293].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:270: initializer element for `gSpeciesInfo[1293].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:281: initializer element for `gSpeciesInfo[1294].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:289: initializer element for `gSpeciesInfo[1294].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:290: initializer element for `gSpeciesInfo[1294].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:292: initializer element for `gSpeciesInfo[1294].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:295: initializer element for `gSpeciesInfo[1294].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:302: initializer element for `gSpeciesInfo[1294].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:335: initializer element for `gSpeciesInfo[1295].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:343: initializer element for `gSpeciesInfo[1295].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:344: initializer element for `gSpeciesInfo[1295].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:346: initializer element for `gSpeciesInfo[1295].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:349: initializer element for `gSpeciesInfo[1295].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:356: initializer element for `gSpeciesInfo[1295].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:377: initializer element for `gSpeciesInfo[1295].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:388: initializer element for `gSpeciesInfo[1296].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:396: initializer element for `gSpeciesInfo[1296].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:397: initializer element for `gSpeciesInfo[1296].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:399: initializer element for `gSpeciesInfo[1296].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:402: initializer element for `gSpeciesInfo[1296].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:409: initializer element for `gSpeciesInfo[1296].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:430: initializer element for `gSpeciesInfo[1296].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:441: initializer element for `gSpeciesInfo[1297].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:449: initializer element for `gSpeciesInfo[1297].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:450: initializer element for `gSpeciesInfo[1297].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:452: initializer element for `gSpeciesInfo[1297].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:455: initializer element for `gSpeciesInfo[1297].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:462: initializer element for `gSpeciesInfo[1297].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:495: initializer element for `gSpeciesInfo[1298].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:503: initializer element for `gSpeciesInfo[1298].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:504: initializer element for `gSpeciesInfo[1298].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:506: initializer element for `gSpeciesInfo[1298].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:509: initializer element for `gSpeciesInfo[1298].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:516: initializer element for `gSpeciesInfo[1298].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:538: initializer element for `gSpeciesInfo[1298].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:549: initializer element for `gSpeciesInfo[1299].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:557: initializer element for `gSpeciesInfo[1299].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:558: initializer element for `gSpeciesInfo[1299].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:560: initializer element for `gSpeciesInfo[1299].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:563: initializer element for `gSpeciesInfo[1299].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:569: initializer element for `gSpeciesInfo[1299].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:601: initializer element for `gSpeciesInfo[1300].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:609: initializer element for `gSpeciesInfo[1300].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:610: initializer element for `gSpeciesInfo[1300].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:612: initializer element for `gSpeciesInfo[1300].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:615: initializer element for `gSpeciesInfo[1300].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:622: initializer element for `gSpeciesInfo[1300].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:656: initializer element for `gSpeciesInfo[1301].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:664: initializer element for `gSpeciesInfo[1301].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:665: initializer element for `gSpeciesInfo[1301].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:667: initializer element for `gSpeciesInfo[1301].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:670: initializer element for `gSpeciesInfo[1301].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:677: initializer element for `gSpeciesInfo[1301].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:698: initializer element for `gSpeciesInfo[1301].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:709: initializer element for `gSpeciesInfo[1302].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:717: initializer element for `gSpeciesInfo[1302].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:718: initializer element for `gSpeciesInfo[1302].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:720: initializer element for `gSpeciesInfo[1302].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:723: initializer element for `gSpeciesInfo[1302].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:730: initializer element for `gSpeciesInfo[1302].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:763: initializer element for `gSpeciesInfo[1303].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:771: initializer element for `gSpeciesInfo[1303].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:772: initializer element for `gSpeciesInfo[1303].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:774: initializer element for `gSpeciesInfo[1303].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:777: initializer element for `gSpeciesInfo[1303].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:784: initializer element for `gSpeciesInfo[1303].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:805: initializer element for `gSpeciesInfo[1303].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:816: initializer element for `gSpeciesInfo[1304].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:824: initializer element for `gSpeciesInfo[1304].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:825: initializer element for `gSpeciesInfo[1304].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:827: initializer element for `gSpeciesInfo[1304].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:830: initializer element for `gSpeciesInfo[1304].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:837: initializer element for `gSpeciesInfo[1304].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:870: initializer element for `gSpeciesInfo[1305].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:878: initializer element for `gSpeciesInfo[1305].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:879: initializer element for `gSpeciesInfo[1305].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:881: initializer element for `gSpeciesInfo[1305].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:884: initializer element for `gSpeciesInfo[1305].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:891: initializer element for `gSpeciesInfo[1305].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:912: initializer element for `gSpeciesInfo[1305].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:923: initializer element for `gSpeciesInfo[1306].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:931: initializer element for `gSpeciesInfo[1306].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:932: initializer element for `gSpeciesInfo[1306].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:934: initializer element for `gSpeciesInfo[1306].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:937: initializer element for `gSpeciesInfo[1306].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:944: initializer element for `gSpeciesInfo[1306].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:965: initializer element for `gSpeciesInfo[1306].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:976: initializer element for `gSpeciesInfo[1307].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:984: initializer element for `gSpeciesInfo[1307].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:985: initializer element for `gSpeciesInfo[1307].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:987: initializer element for `gSpeciesInfo[1307].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:990: initializer element for `gSpeciesInfo[1307].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:997: initializer element for `gSpeciesInfo[1307].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1030: initializer element for `gSpeciesInfo[1308].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1038: initializer element for `gSpeciesInfo[1308].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1039: initializer element for `gSpeciesInfo[1308].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1041: initializer element for `gSpeciesInfo[1308].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1044: initializer element for `gSpeciesInfo[1308].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1051: initializer element for `gSpeciesInfo[1308].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1073: initializer element for `gSpeciesInfo[1308].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1084: initializer element for `gSpeciesInfo[1309].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1092: initializer element for `gSpeciesInfo[1309].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1093: initializer element for `gSpeciesInfo[1309].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1095: initializer element for `gSpeciesInfo[1309].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1098: initializer element for `gSpeciesInfo[1309].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1105: initializer element for `gSpeciesInfo[1309].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1136: initializer element for `gSpeciesInfo[1310].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1144: initializer element for `gSpeciesInfo[1310].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1145: initializer element for `gSpeciesInfo[1310].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1147: initializer element for `gSpeciesInfo[1310].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1150: initializer element for `gSpeciesInfo[1310].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1157: initializer element for `gSpeciesInfo[1310].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1191: initializer element for `gSpeciesInfo[1311].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1199: initializer element for `gSpeciesInfo[1311].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1200: initializer element for `gSpeciesInfo[1311].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1202: initializer element for `gSpeciesInfo[1311].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1205: initializer element for `gSpeciesInfo[1311].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1212: initializer element for `gSpeciesInfo[1311].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1233: initializer element for `gSpeciesInfo[1311].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1244: initializer element for `gSpeciesInfo[1312].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1252: initializer element for `gSpeciesInfo[1312].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1253: initializer element for `gSpeciesInfo[1312].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1255: initializer element for `gSpeciesInfo[1312].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1258: initializer element for `gSpeciesInfo[1312].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1265: initializer element for `gSpeciesInfo[1312].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1298: initializer element for `gSpeciesInfo[1313].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1306: initializer element for `gSpeciesInfo[1313].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1307: initializer element for `gSpeciesInfo[1313].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1309: initializer element for `gSpeciesInfo[1313].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1312: initializer element for `gSpeciesInfo[1313].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1319: initializer element for `gSpeciesInfo[1313].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1340: initializer element for `gSpeciesInfo[1313].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1351: initializer element for `gSpeciesInfo[1314].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1359: initializer element for `gSpeciesInfo[1314].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1360: initializer element for `gSpeciesInfo[1314].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1362: initializer element for `gSpeciesInfo[1314].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1365: initializer element for `gSpeciesInfo[1314].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1372: initializer element for `gSpeciesInfo[1314].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1393: initializer element for `gSpeciesInfo[1314].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1404: initializer element for `gSpeciesInfo[1315].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1412: initializer element for `gSpeciesInfo[1315].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1413: initializer element for `gSpeciesInfo[1315].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1415: initializer element for `gSpeciesInfo[1315].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1418: initializer element for `gSpeciesInfo[1315].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1425: initializer element for `gSpeciesInfo[1315].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1458: initializer element for `gSpeciesInfo[1316].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1466: initializer element for `gSpeciesInfo[1316].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1467: initializer element for `gSpeciesInfo[1316].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1469: initializer element for `gSpeciesInfo[1316].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1472: initializer element for `gSpeciesInfo[1316].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1479: initializer element for `gSpeciesInfo[1316].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1511: initializer element for `gSpeciesInfo[1317].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1519: initializer element for `gSpeciesInfo[1317].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1520: initializer element for `gSpeciesInfo[1317].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1522: initializer element for `gSpeciesInfo[1317].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1525: initializer element for `gSpeciesInfo[1317].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1532: initializer element for `gSpeciesInfo[1317].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1564: initializer element for `gSpeciesInfo[1318].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1572: initializer element for `gSpeciesInfo[1318].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1573: initializer element for `gSpeciesInfo[1318].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1575: initializer element for `gSpeciesInfo[1318].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1578: initializer element for `gSpeciesInfo[1318].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1585: initializer element for `gSpeciesInfo[1318].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1617: initializer element for `gSpeciesInfo[1319].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1625: initializer element for `gSpeciesInfo[1319].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1626: initializer element for `gSpeciesInfo[1319].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1628: initializer element for `gSpeciesInfo[1319].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1631: initializer element for `gSpeciesInfo[1319].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1638: initializer element for `gSpeciesInfo[1319].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1672: initializer element for `gSpeciesInfo[1320].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1680: initializer element for `gSpeciesInfo[1320].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1681: initializer element for `gSpeciesInfo[1320].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1683: initializer element for `gSpeciesInfo[1320].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1686: initializer element for `gSpeciesInfo[1320].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1693: initializer element for `gSpeciesInfo[1320].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1714: initializer element for `gSpeciesInfo[1320].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1725: initializer element for `gSpeciesInfo[1321].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1733: initializer element for `gSpeciesInfo[1321].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1734: initializer element for `gSpeciesInfo[1321].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1736: initializer element for `gSpeciesInfo[1321].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1739: initializer element for `gSpeciesInfo[1321].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1746: initializer element for `gSpeciesInfo[1321].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1767: initializer element for `gSpeciesInfo[1321].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1778: initializer element for `gSpeciesInfo[1322].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1786: initializer element for `gSpeciesInfo[1322].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1787: initializer element for `gSpeciesInfo[1322].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1789: initializer element for `gSpeciesInfo[1322].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1792: initializer element for `gSpeciesInfo[1322].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1799: initializer element for `gSpeciesInfo[1322].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1832: initializer element for `gSpeciesInfo[1323].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1840: initializer element for `gSpeciesInfo[1323].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1841: initializer element for `gSpeciesInfo[1323].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1843: initializer element for `gSpeciesInfo[1323].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1846: initializer element for `gSpeciesInfo[1323].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1853: initializer element for `gSpeciesInfo[1323].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1875: initializer element for `gSpeciesInfo[1323].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1886: initializer element for `gSpeciesInfo[1324].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1894: initializer element for `gSpeciesInfo[1324].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1895: initializer element for `gSpeciesInfo[1324].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1897: initializer element for `gSpeciesInfo[1324].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1900: initializer element for `gSpeciesInfo[1324].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1907: initializer element for `gSpeciesInfo[1324].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1938: initializer element for `gSpeciesInfo[1325].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1946: initializer element for `gSpeciesInfo[1325].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1947: initializer element for `gSpeciesInfo[1325].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1949: initializer element for `gSpeciesInfo[1325].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1952: initializer element for `gSpeciesInfo[1325].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1959: initializer element for `gSpeciesInfo[1325].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1992: initializer element for `gSpeciesInfo[1326].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2000: initializer element for `gSpeciesInfo[1326].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2001: initializer element for `gSpeciesInfo[1326].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2003: initializer element for `gSpeciesInfo[1326].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2006: initializer element for `gSpeciesInfo[1326].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2013: initializer element for `gSpeciesInfo[1326].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2035: initializer element for `gSpeciesInfo[1326].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2046: initializer element for `gSpeciesInfo[1327].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2054: initializer element for `gSpeciesInfo[1327].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2055: initializer element for `gSpeciesInfo[1327].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2057: initializer element for `gSpeciesInfo[1327].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2060: initializer element for `gSpeciesInfo[1327].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2067: initializer element for `gSpeciesInfo[1327].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2100: initializer element for `gSpeciesInfo[1328].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2108: initializer element for `gSpeciesInfo[1328].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2109: initializer element for `gSpeciesInfo[1328].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2111: initializer element for `gSpeciesInfo[1328].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2114: initializer element for `gSpeciesInfo[1328].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2121: initializer element for `gSpeciesInfo[1328].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2142: initializer element for `gSpeciesInfo[1328].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2153: initializer element for `gSpeciesInfo[1329].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2161: initializer element for `gSpeciesInfo[1329].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2162: initializer element for `gSpeciesInfo[1329].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2164: initializer element for `gSpeciesInfo[1329].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2167: initializer element for `gSpeciesInfo[1329].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2174: initializer element for `gSpeciesInfo[1329].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2207: initializer element for `gSpeciesInfo[1330].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2215: initializer element for `gSpeciesInfo[1330].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2216: initializer element for `gSpeciesInfo[1330].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2218: initializer element for `gSpeciesInfo[1330].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2221: initializer element for `gSpeciesInfo[1330].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2228: initializer element for `gSpeciesInfo[1330].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2249: initializer element for `gSpeciesInfo[1330].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2260: initializer element for `gSpeciesInfo[1331].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2268: initializer element for `gSpeciesInfo[1331].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2269: initializer element for `gSpeciesInfo[1331].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2271: initializer element for `gSpeciesInfo[1331].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2274: initializer element for `gSpeciesInfo[1331].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2281: initializer element for `gSpeciesInfo[1331].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2314: initializer element for `gSpeciesInfo[1332].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2322: initializer element for `gSpeciesInfo[1332].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2323: initializer element for `gSpeciesInfo[1332].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2325: initializer element for `gSpeciesInfo[1332].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2328: initializer element for `gSpeciesInfo[1332].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2335: initializer element for `gSpeciesInfo[1332].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2356: initializer element for `gSpeciesInfo[1332].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2367: initializer element for `gSpeciesInfo[1333].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2375: initializer element for `gSpeciesInfo[1333].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2376: initializer element for `gSpeciesInfo[1333].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2378: initializer element for `gSpeciesInfo[1333].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2381: initializer element for `gSpeciesInfo[1333].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2388: initializer element for `gSpeciesInfo[1333].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2421: initializer element for `gSpeciesInfo[1334].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2429: initializer element for `gSpeciesInfo[1334].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2430: initializer element for `gSpeciesInfo[1334].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2432: initializer element for `gSpeciesInfo[1334].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2435: initializer element for `gSpeciesInfo[1334].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2442: initializer element for `gSpeciesInfo[1334].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2463: initializer element for `gSpeciesInfo[1334].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2474: initializer element for `gSpeciesInfo[1335].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2482: initializer element for `gSpeciesInfo[1335].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2483: initializer element for `gSpeciesInfo[1335].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2485: initializer element for `gSpeciesInfo[1335].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2488: initializer element for `gSpeciesInfo[1335].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2495: initializer element for `gSpeciesInfo[1335].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2528: initializer element for `gSpeciesInfo[1336].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2536: initializer element for `gSpeciesInfo[1336].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2537: initializer element for `gSpeciesInfo[1336].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2539: initializer element for `gSpeciesInfo[1336].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2542: initializer element for `gSpeciesInfo[1336].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2549: initializer element for `gSpeciesInfo[1336].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2570: initializer element for `gSpeciesInfo[1336].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2581: initializer element for `gSpeciesInfo[1337].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2589: initializer element for `gSpeciesInfo[1337].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2590: initializer element for `gSpeciesInfo[1337].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2592: initializer element for `gSpeciesInfo[1337].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2595: initializer element for `gSpeciesInfo[1337].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2602: initializer element for `gSpeciesInfo[1337].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2635: initializer element for `gSpeciesInfo[1338].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2643: initializer element for `gSpeciesInfo[1338].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2644: initializer element for `gSpeciesInfo[1338].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2646: initializer element for `gSpeciesInfo[1338].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2649: initializer element for `gSpeciesInfo[1338].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2656: initializer element for `gSpeciesInfo[1338].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2689: initializer element for `gSpeciesInfo[1339].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2697: initializer element for `gSpeciesInfo[1339].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2698: initializer element for `gSpeciesInfo[1339].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2700: initializer element for `gSpeciesInfo[1339].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2703: initializer element for `gSpeciesInfo[1339].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2710: initializer element for `gSpeciesInfo[1339].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2731: initializer element for `gSpeciesInfo[1339].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2742: initializer element for `gSpeciesInfo[1340].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2750: initializer element for `gSpeciesInfo[1340].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2751: initializer element for `gSpeciesInfo[1340].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2753: initializer element for `gSpeciesInfo[1340].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2756: initializer element for `gSpeciesInfo[1340].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2763: initializer element for `gSpeciesInfo[1340].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2796: initializer element for `gSpeciesInfo[1341].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2804: initializer element for `gSpeciesInfo[1341].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2805: initializer element for `gSpeciesInfo[1341].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2807: initializer element for `gSpeciesInfo[1341].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2810: initializer element for `gSpeciesInfo[1341].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2817: initializer element for `gSpeciesInfo[1341].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2838: initializer element for `gSpeciesInfo[1341].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2849: initializer element for `gSpeciesInfo[1342].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2857: initializer element for `gSpeciesInfo[1342].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2858: initializer element for `gSpeciesInfo[1342].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2860: initializer element for `gSpeciesInfo[1342].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2863: initializer element for `gSpeciesInfo[1342].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2870: initializer element for `gSpeciesInfo[1342].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2903: initializer element for `gSpeciesInfo[1343].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2911: initializer element for `gSpeciesInfo[1343].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2912: initializer element for `gSpeciesInfo[1343].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2914: initializer element for `gSpeciesInfo[1343].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2917: initializer element for `gSpeciesInfo[1343].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2924: initializer element for `gSpeciesInfo[1343].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2945: initializer element for `gSpeciesInfo[1343].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2956: initializer element for `gSpeciesInfo[1344].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2964: initializer element for `gSpeciesInfo[1344].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2965: initializer element for `gSpeciesInfo[1344].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2967: initializer element for `gSpeciesInfo[1344].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2970: initializer element for `gSpeciesInfo[1344].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2977: initializer element for `gSpeciesInfo[1344].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3010: initializer element for `gSpeciesInfo[1345].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3018: initializer element for `gSpeciesInfo[1345].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3019: initializer element for `gSpeciesInfo[1345].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3021: initializer element for `gSpeciesInfo[1345].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3024: initializer element for `gSpeciesInfo[1345].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3031: initializer element for `gSpeciesInfo[1345].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3052: initializer element for `gSpeciesInfo[1345].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3063: initializer element for `gSpeciesInfo[1346].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3071: initializer element for `gSpeciesInfo[1346].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3072: initializer element for `gSpeciesInfo[1346].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3074: initializer element for `gSpeciesInfo[1346].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3077: initializer element for `gSpeciesInfo[1346].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3084: initializer element for `gSpeciesInfo[1346].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3105: initializer element for `gSpeciesInfo[1346].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3116: initializer element for `gSpeciesInfo[1347].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3124: initializer element for `gSpeciesInfo[1347].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3125: initializer element for `gSpeciesInfo[1347].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3127: initializer element for `gSpeciesInfo[1347].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3130: initializer element for `gSpeciesInfo[1347].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3137: initializer element for `gSpeciesInfo[1347].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3170: initializer element for `gSpeciesInfo[1348].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3178: initializer element for `gSpeciesInfo[1348].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3179: initializer element for `gSpeciesInfo[1348].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3181: initializer element for `gSpeciesInfo[1348].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3184: initializer element for `gSpeciesInfo[1348].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3190: initializer element for `gSpeciesInfo[1348].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3211: initializer element for `gSpeciesInfo[1348].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3222: initializer element for `gSpeciesInfo[1349].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3230: initializer element for `gSpeciesInfo[1349].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3231: initializer element for `gSpeciesInfo[1349].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3233: initializer element for `gSpeciesInfo[1349].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3236: initializer element for `gSpeciesInfo[1349].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3242: initializer element for `gSpeciesInfo[1349].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3275: initializer element for `gSpeciesInfo[1350].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3283: initializer element for `gSpeciesInfo[1350].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3284: initializer element for `gSpeciesInfo[1350].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3286: initializer element for `gSpeciesInfo[1350].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3289: initializer element for `gSpeciesInfo[1350].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3296: initializer element for `gSpeciesInfo[1350].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3330: initializer element for `gSpeciesInfo[1351].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3338: initializer element for `gSpeciesInfo[1351].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3339: initializer element for `gSpeciesInfo[1351].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3341: initializer element for `gSpeciesInfo[1351].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3344: initializer element for `gSpeciesInfo[1351].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3350: initializer element for `gSpeciesInfo[1351].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3371: initializer element for `gSpeciesInfo[1351].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3382: initializer element for `gSpeciesInfo[1352].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3390: initializer element for `gSpeciesInfo[1352].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3391: initializer element for `gSpeciesInfo[1352].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3393: initializer element for `gSpeciesInfo[1352].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3396: initializer element for `gSpeciesInfo[1352].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3403: initializer element for `gSpeciesInfo[1352].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3436: initializer element for `gSpeciesInfo[1353].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3444: initializer element for `gSpeciesInfo[1353].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3445: initializer element for `gSpeciesInfo[1353].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3447: initializer element for `gSpeciesInfo[1353].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3450: initializer element for `gSpeciesInfo[1353].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3457: initializer element for `gSpeciesInfo[1353].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3492: initializer element for `gSpeciesInfo[1354].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3500: initializer element for `gSpeciesInfo[1354].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3501: initializer element for `gSpeciesInfo[1354].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3503: initializer element for `gSpeciesInfo[1354].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3506: initializer element for `gSpeciesInfo[1354].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3513: initializer element for `gSpeciesInfo[1354].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3534: initializer element for `gSpeciesInfo[1354].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3545: initializer element for `gSpeciesInfo[1355].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3553: initializer element for `gSpeciesInfo[1355].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3554: initializer element for `gSpeciesInfo[1355].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3556: initializer element for `gSpeciesInfo[1355].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3559: initializer element for `gSpeciesInfo[1355].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3566: initializer element for `gSpeciesInfo[1355].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3599: initializer element for `gSpeciesInfo[1356].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3607: initializer element for `gSpeciesInfo[1356].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3608: initializer element for `gSpeciesInfo[1356].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3610: initializer element for `gSpeciesInfo[1356].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3613: initializer element for `gSpeciesInfo[1356].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3620: initializer element for `gSpeciesInfo[1356].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3653: initializer element for `gSpeciesInfo[1357].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3661: initializer element for `gSpeciesInfo[1357].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3662: initializer element for `gSpeciesInfo[1357].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3664: initializer element for `gSpeciesInfo[1357].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3667: initializer element for `gSpeciesInfo[1357].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3674: initializer element for `gSpeciesInfo[1357].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3707: initializer element for `gSpeciesInfo[1358].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3715: initializer element for `gSpeciesInfo[1358].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3716: initializer element for `gSpeciesInfo[1358].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3718: initializer element for `gSpeciesInfo[1358].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3721: initializer element for `gSpeciesInfo[1358].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3728: initializer element for `gSpeciesInfo[1358].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3750: initializer element for `gSpeciesInfo[1358].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3761: initializer element for `gSpeciesInfo[1359].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3769: initializer element for `gSpeciesInfo[1359].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3770: initializer element for `gSpeciesInfo[1359].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3772: initializer element for `gSpeciesInfo[1359].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3775: initializer element for `gSpeciesInfo[1359].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3782: initializer element for `gSpeciesInfo[1359].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3816: initializer element for `gSpeciesInfo[1360].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3824: initializer element for `gSpeciesInfo[1360].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3825: initializer element for `gSpeciesInfo[1360].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3827: initializer element for `gSpeciesInfo[1360].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3830: initializer element for `gSpeciesInfo[1360].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3837: initializer element for `gSpeciesInfo[1360].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3858: initializer element for `gSpeciesInfo[1360].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3869: initializer element for `gSpeciesInfo[1361].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3877: initializer element for `gSpeciesInfo[1361].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3878: initializer element for `gSpeciesInfo[1361].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3880: initializer element for `gSpeciesInfo[1361].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3883: initializer element for `gSpeciesInfo[1361].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3890: initializer element for `gSpeciesInfo[1361].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3923: initializer element for `gSpeciesInfo[1362].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3931: initializer element for `gSpeciesInfo[1362].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3932: initializer element for `gSpeciesInfo[1362].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3934: initializer element for `gSpeciesInfo[1362].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3937: initializer element for `gSpeciesInfo[1362].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3944: initializer element for `gSpeciesInfo[1362].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3977: initializer element for `gSpeciesInfo[1363].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3985: initializer element for `gSpeciesInfo[1363].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3986: initializer element for `gSpeciesInfo[1363].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3988: initializer element for `gSpeciesInfo[1363].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3991: initializer element for `gSpeciesInfo[1363].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3998: initializer element for `gSpeciesInfo[1363].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4019: initializer element for `gSpeciesInfo[1363].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4030: initializer element for `gSpeciesInfo[1364].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4038: initializer element for `gSpeciesInfo[1364].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4039: initializer element for `gSpeciesInfo[1364].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4041: initializer element for `gSpeciesInfo[1364].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4044: initializer element for `gSpeciesInfo[1364].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4051: initializer element for `gSpeciesInfo[1364].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4084: initializer element for `gSpeciesInfo[1365].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4092: initializer element for `gSpeciesInfo[1365].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4093: initializer element for `gSpeciesInfo[1365].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4095: initializer element for `gSpeciesInfo[1365].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4098: initializer element for `gSpeciesInfo[1365].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4105: initializer element for `gSpeciesInfo[1365].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4139: initializer element for `gSpeciesInfo[1366].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4147: initializer element for `gSpeciesInfo[1366].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4148: initializer element for `gSpeciesInfo[1366].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4150: initializer element for `gSpeciesInfo[1366].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4153: initializer element for `gSpeciesInfo[1366].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4160: initializer element for `gSpeciesInfo[1366].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4194: initializer element for `gSpeciesInfo[1367].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4202: initializer element for `gSpeciesInfo[1367].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4203: initializer element for `gSpeciesInfo[1367].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4205: initializer element for `gSpeciesInfo[1367].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4208: initializer element for `gSpeciesInfo[1367].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4215: initializer element for `gSpeciesInfo[1367].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4247: initializer element for `gSpeciesInfo[1368].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4255: initializer element for `gSpeciesInfo[1368].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4256: initializer element for `gSpeciesInfo[1368].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4258: initializer element for `gSpeciesInfo[1368].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4261: initializer element for `gSpeciesInfo[1368].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4267: initializer element for `gSpeciesInfo[1368].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4299: initializer element for `gSpeciesInfo[1369].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4307: initializer element for `gSpeciesInfo[1369].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4308: initializer element for `gSpeciesInfo[1369].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4310: initializer element for `gSpeciesInfo[1369].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4313: initializer element for `gSpeciesInfo[1369].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4319: initializer element for `gSpeciesInfo[1369].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4353: initializer element for `gSpeciesInfo[1376].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4361: initializer element for `gSpeciesInfo[1376].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4362: initializer element for `gSpeciesInfo[1376].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4364: initializer element for `gSpeciesInfo[1376].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4367: initializer element for `gSpeciesInfo[1376].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4374: initializer element for `gSpeciesInfo[1376].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4408: initializer element for `gSpeciesInfo[1377].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4416: initializer element for `gSpeciesInfo[1377].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4417: initializer element for `gSpeciesInfo[1377].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4419: initializer element for `gSpeciesInfo[1377].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4422: initializer element for `gSpeciesInfo[1377].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4429: initializer element for `gSpeciesInfo[1377].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4463: initializer element for `gSpeciesInfo[1378].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4471: initializer element for `gSpeciesInfo[1378].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4472: initializer element for `gSpeciesInfo[1378].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4474: initializer element for `gSpeciesInfo[1378].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4477: initializer element for `gSpeciesInfo[1378].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4484: initializer element for `gSpeciesInfo[1378].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4518: initializer element for `gSpeciesInfo[1379].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4528: initializer element for `gSpeciesInfo[1379].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4529: initializer element for `gSpeciesInfo[1379].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4531: initializer element for `gSpeciesInfo[1379].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4534: initializer element for `gSpeciesInfo[1379].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4541: initializer element for `gSpeciesInfo[1379].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4576: initializer element for `gSpeciesInfo[1380].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4584: initializer element for `gSpeciesInfo[1380].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4585: initializer element for `gSpeciesInfo[1380].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4587: initializer element for `gSpeciesInfo[1380].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4590: initializer element for `gSpeciesInfo[1380].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4596: initializer element for `gSpeciesInfo[1380].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4630: initializer element for `gSpeciesInfo[1381].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4638: initializer element for `gSpeciesInfo[1381].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4639: initializer element for `gSpeciesInfo[1381].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4641: initializer element for `gSpeciesInfo[1381].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4644: initializer element for `gSpeciesInfo[1381].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4651: initializer element for `gSpeciesInfo[1381].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4685: initializer element for `gSpeciesInfo[1382].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4693: initializer element for `gSpeciesInfo[1382].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4694: initializer element for `gSpeciesInfo[1382].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4696: initializer element for `gSpeciesInfo[1382].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4699: initializer element for `gSpeciesInfo[1382].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4706: initializer element for `gSpeciesInfo[1382].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4740: initializer element for `gSpeciesInfo[1383].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4748: initializer element for `gSpeciesInfo[1383].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4749: initializer element for `gSpeciesInfo[1383].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4751: initializer element for `gSpeciesInfo[1383].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4754: initializer element for `gSpeciesInfo[1383].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4761: initializer element for `gSpeciesInfo[1383].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4795: initializer element for `gSpeciesInfo[1384].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4803: initializer element for `gSpeciesInfo[1384].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4804: initializer element for `gSpeciesInfo[1384].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4806: initializer element for `gSpeciesInfo[1384].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4809: initializer element for `gSpeciesInfo[1384].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4816: initializer element for `gSpeciesInfo[1384].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4850: initializer element for `gSpeciesInfo[1385].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4858: initializer element for `gSpeciesInfo[1385].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4859: initializer element for `gSpeciesInfo[1385].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4861: initializer element for `gSpeciesInfo[1385].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4864: initializer element for `gSpeciesInfo[1385].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4871: initializer element for `gSpeciesInfo[1385].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4906: initializer element for `gSpeciesInfo[1386].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4914: initializer element for `gSpeciesInfo[1386].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4915: initializer element for `gSpeciesInfo[1386].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4917: initializer element for `gSpeciesInfo[1386].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4920: initializer element for `gSpeciesInfo[1386].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4927: initializer element for `gSpeciesInfo[1386].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4962: initializer element for `gSpeciesInfo[1387].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4970: initializer element for `gSpeciesInfo[1387].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4971: initializer element for `gSpeciesInfo[1387].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4973: initializer element for `gSpeciesInfo[1387].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4976: initializer element for `gSpeciesInfo[1387].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4983: initializer element for `gSpeciesInfo[1387].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5017: initializer element for `gSpeciesInfo[1388].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5025: initializer element for `gSpeciesInfo[1388].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5026: initializer element for `gSpeciesInfo[1388].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5028: initializer element for `gSpeciesInfo[1388].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5031: initializer element for `gSpeciesInfo[1388].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5038: initializer element for `gSpeciesInfo[1388].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5059: initializer element for `gSpeciesInfo[1388].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5070: initializer element for `gSpeciesInfo[1389].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5078: initializer element for `gSpeciesInfo[1389].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5079: initializer element for `gSpeciesInfo[1389].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5081: initializer element for `gSpeciesInfo[1389].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5084: initializer element for `gSpeciesInfo[1389].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5091: initializer element for `gSpeciesInfo[1389].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5112: initializer element for `gSpeciesInfo[1389].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5123: initializer element for `gSpeciesInfo[1390].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5131: initializer element for `gSpeciesInfo[1390].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5132: initializer element for `gSpeciesInfo[1390].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5134: initializer element for `gSpeciesInfo[1390].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5137: initializer element for `gSpeciesInfo[1390].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5144: initializer element for `gSpeciesInfo[1390].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5177: initializer element for `gSpeciesInfo[1391].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5185: initializer element for `gSpeciesInfo[1391].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5186: initializer element for `gSpeciesInfo[1391].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5188: initializer element for `gSpeciesInfo[1391].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5191: initializer element for `gSpeciesInfo[1391].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5198: initializer element for `gSpeciesInfo[1391].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5220: initializer element for `gSpeciesInfo[1391].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5231: initializer element for `gSpeciesInfo[1392].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5239: initializer element for `gSpeciesInfo[1392].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5240: initializer element for `gSpeciesInfo[1392].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5242: initializer element for `gSpeciesInfo[1392].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5245: initializer element for `gSpeciesInfo[1392].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5252: initializer element for `gSpeciesInfo[1392].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5274: initializer element for `gSpeciesInfo[1392].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5285: initializer element for `gSpeciesInfo[1393].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5293: initializer element for `gSpeciesInfo[1393].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5294: initializer element for `gSpeciesInfo[1393].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5296: initializer element for `gSpeciesInfo[1393].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5299: initializer element for `gSpeciesInfo[1393].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5306: initializer element for `gSpeciesInfo[1393].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5339: initializer element for `gSpeciesInfo[1394].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5347: initializer element for `gSpeciesInfo[1394].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5348: initializer element for `gSpeciesInfo[1394].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5350: initializer element for `gSpeciesInfo[1394].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5353: initializer element for `gSpeciesInfo[1394].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5360: initializer element for `gSpeciesInfo[1394].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5394: initializer element for `gSpeciesInfo[1395].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5402: initializer element for `gSpeciesInfo[1395].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5403: initializer element for `gSpeciesInfo[1395].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5405: initializer element for `gSpeciesInfo[1395].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5408: initializer element for `gSpeciesInfo[1395].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5415: initializer element for `gSpeciesInfo[1395].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5449: initializer element for `gSpeciesInfo[1396].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5457: initializer element for `gSpeciesInfo[1396].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5458: initializer element for `gSpeciesInfo[1396].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5460: initializer element for `gSpeciesInfo[1396].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5463: initializer element for `gSpeciesInfo[1396].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5470: initializer element for `gSpeciesInfo[1396].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5504: initializer element for `gSpeciesInfo[1397].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5512: initializer element for `gSpeciesInfo[1397].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5513: initializer element for `gSpeciesInfo[1397].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5515: initializer element for `gSpeciesInfo[1397].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5518: initializer element for `gSpeciesInfo[1397].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5525: initializer element for `gSpeciesInfo[1397].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5560: initializer element for `gSpeciesInfo[1398].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5568: initializer element for `gSpeciesInfo[1398].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5569: initializer element for `gSpeciesInfo[1398].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5571: initializer element for `gSpeciesInfo[1398].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5574: initializer element for `gSpeciesInfo[1398].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5581: initializer element for `gSpeciesInfo[1398].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5616: initializer element for `gSpeciesInfo[1399].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5624: initializer element for `gSpeciesInfo[1399].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5625: initializer element for `gSpeciesInfo[1399].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5627: initializer element for `gSpeciesInfo[1399].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5630: initializer element for `gSpeciesInfo[1399].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5636: initializer element for `gSpeciesInfo[1399].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5670: initializer element for `gSpeciesInfo[1400].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5678: initializer element for `gSpeciesInfo[1400].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5679: initializer element for `gSpeciesInfo[1400].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5681: initializer element for `gSpeciesInfo[1400].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5684: initializer element for `gSpeciesInfo[1400].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5691: initializer element for `gSpeciesInfo[1400].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5726: initializer element for `gSpeciesInfo[1401].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5734: initializer element for `gSpeciesInfo[1401].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5735: initializer element for `gSpeciesInfo[1401].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5737: initializer element for `gSpeciesInfo[1401].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5740: initializer element for `gSpeciesInfo[1401].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5747: initializer element for `gSpeciesInfo[1401].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5782: initializer element for `gSpeciesInfo[1406].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5790: initializer element for `gSpeciesInfo[1406].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5791: initializer element for `gSpeciesInfo[1406].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5793: initializer element for `gSpeciesInfo[1406].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5796: initializer element for `gSpeciesInfo[1406].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5802: initializer element for `gSpeciesInfo[1406].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5836: initializer element for `gSpeciesInfo[1407].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5844: initializer element for `gSpeciesInfo[1407].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5845: initializer element for `gSpeciesInfo[1407].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5847: initializer element for `gSpeciesInfo[1407].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5850: initializer element for `gSpeciesInfo[1407].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5856: initializer element for `gSpeciesInfo[1407].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5890: initializer element for `gSpeciesInfo[1409].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5898: initializer element for `gSpeciesInfo[1409].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5899: initializer element for `gSpeciesInfo[1409].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5901: initializer element for `gSpeciesInfo[1409].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5904: initializer element for `gSpeciesInfo[1409].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5911: initializer element for `gSpeciesInfo[1409].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5933: initializer element for `gSpeciesInfo[1409].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5943: initializer element for `gSpeciesInfo[1410].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5951: initializer element for `gSpeciesInfo[1410].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5952: initializer element for `gSpeciesInfo[1410].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5954: initializer element for `gSpeciesInfo[1410].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5957: initializer element for `gSpeciesInfo[1410].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5964: initializer element for `gSpeciesInfo[1410].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5986: initializer element for `gSpeciesInfo[1410].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5997: initializer element for `gSpeciesInfo[1411].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6005: initializer element for `gSpeciesInfo[1411].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6006: initializer element for `gSpeciesInfo[1411].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6008: initializer element for `gSpeciesInfo[1411].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6011: initializer element for `gSpeciesInfo[1411].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6018: initializer element for `gSpeciesInfo[1411].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6049: initializer element for `gSpeciesInfo[1412].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6057: initializer element for `gSpeciesInfo[1412].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6058: initializer element for `gSpeciesInfo[1412].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6060: initializer element for `gSpeciesInfo[1412].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6063: initializer element for `gSpeciesInfo[1412].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6070: initializer element for `gSpeciesInfo[1412].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6104: initializer element for `gSpeciesInfo[1413].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6112: initializer element for `gSpeciesInfo[1413].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6113: initializer element for `gSpeciesInfo[1413].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6115: initializer element for `gSpeciesInfo[1413].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6118: initializer element for `gSpeciesInfo[1413].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6125: initializer element for `gSpeciesInfo[1413].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6159: initializer element for `gSpeciesInfo[1414].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6167: initializer element for `gSpeciesInfo[1414].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6168: initializer element for `gSpeciesInfo[1414].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6170: initializer element for `gSpeciesInfo[1414].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6173: initializer element for `gSpeciesInfo[1414].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6180: initializer element for `gSpeciesInfo[1414].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6214: initializer element for `gSpeciesInfo[1415].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6222: initializer element for `gSpeciesInfo[1415].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6223: initializer element for `gSpeciesInfo[1415].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6225: initializer element for `gSpeciesInfo[1415].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6228: initializer element for `gSpeciesInfo[1415].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6235: initializer element for `gSpeciesInfo[1415].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6334: initializer element for `gSpeciesInfo[1427].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6342: initializer element for `gSpeciesInfo[1427].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6343: initializer element for `gSpeciesInfo[1427].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6345: initializer element for `gSpeciesInfo[1427].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6348: initializer element for `gSpeciesInfo[1427].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6355: initializer element for `gSpeciesInfo[1427].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6376: `sGougingFireTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6376: initializer element for `gSpeciesInfo[1427].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6389: initializer element for `gSpeciesInfo[1428].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6397: initializer element for `gSpeciesInfo[1428].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6398: initializer element for `gSpeciesInfo[1428].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6400: initializer element for `gSpeciesInfo[1428].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6403: initializer element for `gSpeciesInfo[1428].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6410: initializer element for `gSpeciesInfo[1428].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6431: `sRagingBoltTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6431: initializer element for `gSpeciesInfo[1428].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6444: initializer element for `gSpeciesInfo[1429].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6452: initializer element for `gSpeciesInfo[1429].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6453: initializer element for `gSpeciesInfo[1429].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6455: initializer element for `gSpeciesInfo[1429].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6458: initializer element for `gSpeciesInfo[1429].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6464: initializer element for `gSpeciesInfo[1429].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6485: `sIronBoulderTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6485: initializer element for `gSpeciesInfo[1429].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6498: initializer element for `gSpeciesInfo[1430].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6506: initializer element for `gSpeciesInfo[1430].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6507: initializer element for `gSpeciesInfo[1430].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6509: initializer element for `gSpeciesInfo[1430].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6512: initializer element for `gSpeciesInfo[1430].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6519: initializer element for `gSpeciesInfo[1430].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6540: `sIronCrownTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6540: initializer element for `gSpeciesInfo[1430].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6553: initializer element for `gSpeciesInfo[1431].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6561: initializer element for `gSpeciesInfo[1431].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6562: initializer element for `gSpeciesInfo[1431].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6564: initializer element for `gSpeciesInfo[1431].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6567: initializer element for `gSpeciesInfo[1431].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6574: initializer element for `gSpeciesInfo[1431].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6595: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6595: initializer element for `gSpeciesInfo[1431].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6608: initializer element for `gSpeciesInfo[1432].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6617: initializer element for `gSpeciesInfo[1432].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6618: initializer element for `gSpeciesInfo[1432].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6620: initializer element for `gSpeciesInfo[1432].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6623: initializer element for `gSpeciesInfo[1432].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6630: initializer element for `gSpeciesInfo[1432].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6651: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6651: initializer element for `gSpeciesInfo[1432].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6664: initializer element for `gSpeciesInfo[1433].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6672: initializer element for `gSpeciesInfo[1433].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6673: initializer element for `gSpeciesInfo[1433].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6675: initializer element for `gSpeciesInfo[1433].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6678: initializer element for `gSpeciesInfo[1433].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6685: initializer element for `gSpeciesInfo[1433].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6706: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6706: initializer element for `gSpeciesInfo[1433].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6721: initializer element for `gSpeciesInfo[1434].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6729: initializer element for `gSpeciesInfo[1434].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6730: initializer element for `gSpeciesInfo[1434].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6732: initializer element for `gSpeciesInfo[1434].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6735: initializer element for `gSpeciesInfo[1434].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6742: initializer element for `gSpeciesInfo[1434].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6763: `sPecharuntTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6763: initializer element for `gSpeciesInfo[1434].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +In file included from src/pokemon.c:683: +src/data/pokemon/species_info.h:82: initializer element for `gSpeciesInfo[1524]' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +make: *** [Makefile:276: build/firered/src/pokemon.o] Error 1 diff --git a/graphics/pokemon/annihilape/icon.png b/graphics/pokemon/annihilape/icon.png index 561a4afed..e45f7583c 100644 Binary files a/graphics/pokemon/annihilape/icon.png and b/graphics/pokemon/annihilape/icon.png differ diff --git a/graphics/pokemon/arboliva/back.png b/graphics/pokemon/arboliva/back.png index a1383390e..e767299fb 100644 Binary files a/graphics/pokemon/arboliva/back.png and b/graphics/pokemon/arboliva/back.png differ diff --git a/graphics/pokemon/arboliva/front.png b/graphics/pokemon/arboliva/front.png index 13521182f..37a208c34 100644 Binary files a/graphics/pokemon/arboliva/front.png and b/graphics/pokemon/arboliva/front.png differ diff --git a/graphics/pokemon/arboliva/icon.png b/graphics/pokemon/arboliva/icon.png index 039efb548..07f763a94 100644 Binary files a/graphics/pokemon/arboliva/icon.png and b/graphics/pokemon/arboliva/icon.png differ diff --git a/graphics/pokemon/arboliva/normal.pal b/graphics/pokemon/arboliva/normal.pal index c343903ef..0ca85b283 100644 --- a/graphics/pokemon/arboliva/normal.pal +++ b/graphics/pokemon/arboliva/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -0 128 32 -152 224 56 -0 56 16 -0 200 32 -0 0 0 -248 248 240 -184 192 168 -72 96 72 -224 128 72 -192 72 40 -104 32 56 -160 56 80 -56 8 24 -80 32 24 -0 0 0 +154 212 167 +58 131 45 +28 60 24 +166 238 83 +155 232 78 +8 8 8 +96 203 52 +95 32 55 +52 11 24 +141 57 79 +253 255 244 +82 97 77 +191 195 175 +207 132 80 +171 78 49 +82 40 28 diff --git a/graphics/pokemon/arboliva/shiny.pal b/graphics/pokemon/arboliva/shiny.pal index 796aeec5b..b6efee72c 100644 --- a/graphics/pokemon/arboliva/shiny.pal +++ b/graphics/pokemon/arboliva/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -8 48 16 -112 144 64 -0 56 16 -24 120 40 -0 0 0 -248 248 240 -184 192 168 -72 96 72 -200 112 64 -168 64 40 -56 16 24 -104 32 48 -56 8 24 -80 32 24 -0 0 0 +154 212 167 +36 97 36 +28 60 24 +166 238 83 +68 194 45 +8 8 8 +40 142 53 +39 31 50 +13 14 26 +65 53 83 +251 255 179 +117 115 75 +201 190 133 +196 158 83 +156 118 52 +82 40 28 diff --git a/graphics/pokemon/arcanine/hisuian/icon.png b/graphics/pokemon/arcanine/hisuian/icon.png index 9fe900792..215b8d8d6 100644 Binary files a/graphics/pokemon/arcanine/hisuian/icon.png and b/graphics/pokemon/arcanine/hisuian/icon.png differ diff --git a/graphics/pokemon/archaludon/back.png b/graphics/pokemon/archaludon/back.png new file mode 100644 index 000000000..4b2d3971e Binary files /dev/null and b/graphics/pokemon/archaludon/back.png differ diff --git a/graphics/pokemon/archaludon/front.png b/graphics/pokemon/archaludon/front.png new file mode 100644 index 000000000..69afa77cd Binary files /dev/null and b/graphics/pokemon/archaludon/front.png differ diff --git a/graphics/pokemon/archaludon/icon.png b/graphics/pokemon/archaludon/icon.png new file mode 100644 index 000000000..9ad59de8f Binary files /dev/null and b/graphics/pokemon/archaludon/icon.png differ diff --git a/graphics/pokemon/archaludon/normal.pal b/graphics/pokemon/archaludon/normal.pal new file mode 100644 index 000000000..cda380560 --- /dev/null +++ b/graphics/pokemon/archaludon/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +136 73 83 +8 8 8 +189 126 61 +224 90 94 +240 225 123 +3 33 81 +105 99 119 +223 226 244 +252 253 253 +184 181 206 +49 93 142 +141 132 166 +18 56 103 +98 133 172 +132 109 58 diff --git a/graphics/pokemon/archaludon/shiny.pal b/graphics/pokemon/archaludon/shiny.pal new file mode 100644 index 000000000..79e6173d9 --- /dev/null +++ b/graphics/pokemon/archaludon/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +134 152 175 +8 8 8 +174 103 68 +217 226 242 +227 155 106 +17 62 103 +61 65 71 +131 147 160 +172 186 203 +107 116 127 +52 154 201 +83 90 99 +23 98 141 +118 190 214 +241 240 251 diff --git a/graphics/pokemon/arctibax/icon.png b/graphics/pokemon/arctibax/icon.png index cd7aec243..f15a4e354 100644 Binary files a/graphics/pokemon/arctibax/icon.png and b/graphics/pokemon/arctibax/icon.png differ diff --git a/graphics/pokemon/armarouge/icon.png b/graphics/pokemon/armarouge/icon.png index 2a348cab5..5cf958e57 100644 Binary files a/graphics/pokemon/armarouge/icon.png and b/graphics/pokemon/armarouge/icon.png differ diff --git a/graphics/pokemon/basculegion/female/icon.png b/graphics/pokemon/basculegion/female/icon.png index fb85ca6c0..4a0e53921 100644 Binary files a/graphics/pokemon/basculegion/female/icon.png and b/graphics/pokemon/basculegion/female/icon.png differ diff --git a/graphics/pokemon/basculegion/icon.png b/graphics/pokemon/basculegion/icon.png index 579a83d55..6226cf6a5 100644 Binary files a/graphics/pokemon/basculegion/icon.png and b/graphics/pokemon/basculegion/icon.png differ diff --git a/graphics/pokemon/basculin/white_striped/icon.png b/graphics/pokemon/basculin/white_striped/icon.png index a69c4e51a..bc7287fd6 100644 Binary files a/graphics/pokemon/basculin/white_striped/icon.png and b/graphics/pokemon/basculin/white_striped/icon.png differ diff --git a/graphics/pokemon/baxcalibur/icon.png b/graphics/pokemon/baxcalibur/icon.png index befc75d3c..e5386582f 100644 Binary files a/graphics/pokemon/baxcalibur/icon.png and b/graphics/pokemon/baxcalibur/icon.png differ diff --git a/graphics/pokemon/bellibolt/icon.png b/graphics/pokemon/bellibolt/icon.png index 28492e341..5f2a98c8e 100644 Binary files a/graphics/pokemon/bellibolt/icon.png and b/graphics/pokemon/bellibolt/icon.png differ diff --git a/graphics/pokemon/bombirdier/icon.png b/graphics/pokemon/bombirdier/icon.png index 06bcf71c8..45e4ac91d 100644 Binary files a/graphics/pokemon/bombirdier/icon.png and b/graphics/pokemon/bombirdier/icon.png differ diff --git a/graphics/pokemon/brambleghast/icon.png b/graphics/pokemon/brambleghast/icon.png index 645ed7014..ca6a29df2 100644 Binary files a/graphics/pokemon/brambleghast/icon.png and b/graphics/pokemon/brambleghast/icon.png differ diff --git a/graphics/pokemon/bramblin/icon.png b/graphics/pokemon/bramblin/icon.png index 9833e5007..64fa8677b 100644 Binary files a/graphics/pokemon/bramblin/icon.png and b/graphics/pokemon/bramblin/icon.png differ diff --git a/graphics/pokemon/braviary/hisuian/icon.png b/graphics/pokemon/braviary/hisuian/icon.png index c2aa449d9..85eb4decd 100644 Binary files a/graphics/pokemon/braviary/hisuian/icon.png and b/graphics/pokemon/braviary/hisuian/icon.png differ diff --git a/graphics/pokemon/brute_bonnet/back.png b/graphics/pokemon/brute_bonnet/back.png index b73cb1589..36a261487 100644 Binary files a/graphics/pokemon/brute_bonnet/back.png and b/graphics/pokemon/brute_bonnet/back.png differ diff --git a/graphics/pokemon/brute_bonnet/front.png b/graphics/pokemon/brute_bonnet/front.png index 46347100a..f34d40221 100644 Binary files a/graphics/pokemon/brute_bonnet/front.png and b/graphics/pokemon/brute_bonnet/front.png differ diff --git a/graphics/pokemon/brute_bonnet/icon.png b/graphics/pokemon/brute_bonnet/icon.png index 052517c12..82161e124 100644 Binary files a/graphics/pokemon/brute_bonnet/icon.png and b/graphics/pokemon/brute_bonnet/icon.png differ diff --git a/graphics/pokemon/brute_bonnet/normal.pal b/graphics/pokemon/brute_bonnet/normal.pal index 951da388b..ced7bea6c 100644 --- a/graphics/pokemon/brute_bonnet/normal.pal +++ b/graphics/pokemon/brute_bonnet/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -227 45 45 -98 72 65 -57 105 65 -213 105 139 -139 242 139 -65 48 49 -255 220 100 -106 153 115 -0 0 0 -238 182 205 -115 36 32 -32 32 32 -156 149 131 -41 24 24 -205 198 197 +154 212 167 +8 8 8 +99 54 45 +157 155 149 +231 76 81 +207 214 198 +124 84 73 +177 34 57 +68 109 76 +101 165 113 +141 223 134 +96 41 57 +198 176 55 +183 116 142 +244 163 202 +62 34 30 diff --git a/graphics/pokemon/brute_bonnet/shiny.pal b/graphics/pokemon/brute_bonnet/shiny.pal index e0702cf00..b47408876 100644 --- a/graphics/pokemon/brute_bonnet/shiny.pal +++ b/graphics/pokemon/brute_bonnet/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -115 82 222 -82 74 65 -57 105 65 -213 105 139 -139 242 139 -49 49 49 -255 220 100 -106 153 115 -0 0 0 -238 182 205 -82 65 164 -32 32 32 -164 156 123 -41 24 24 -213 205 172 +154 212 167 +8 8 8 +44 44 44 +161 153 121 +116 92 210 +214 206 174 +81 73 63 +88 60 161 +68 109 76 +101 165 113 +141 223 134 +96 41 57 +198 176 55 +183 116 142 +244 163 202 +20 20 20 diff --git a/graphics/pokemon/capsakid/icon.png b/graphics/pokemon/capsakid/icon.png index ede6dc9c0..c10dfa5a9 100644 Binary files a/graphics/pokemon/capsakid/icon.png and b/graphics/pokemon/capsakid/icon.png differ diff --git a/graphics/pokemon/ceruledge/icon.png b/graphics/pokemon/ceruledge/icon.png index 329d5ede3..4107555cd 100644 Binary files a/graphics/pokemon/ceruledge/icon.png and b/graphics/pokemon/ceruledge/icon.png differ diff --git a/graphics/pokemon/cetitan/icon.png b/graphics/pokemon/cetitan/icon.png index 2a0db8704..078ee54a4 100644 Binary files a/graphics/pokemon/cetitan/icon.png and b/graphics/pokemon/cetitan/icon.png differ diff --git a/graphics/pokemon/cetoddle/icon.png b/graphics/pokemon/cetoddle/icon.png index b123bf1f8..b01b85d25 100644 Binary files a/graphics/pokemon/cetoddle/icon.png and b/graphics/pokemon/cetoddle/icon.png differ diff --git a/graphics/pokemon/charcadet/back.png b/graphics/pokemon/charcadet/back.png index 01ead6b28..b064e26a7 100644 Binary files a/graphics/pokemon/charcadet/back.png and b/graphics/pokemon/charcadet/back.png differ diff --git a/graphics/pokemon/charcadet/front.png b/graphics/pokemon/charcadet/front.png index c90c6a2db..b00dc0692 100644 Binary files a/graphics/pokemon/charcadet/front.png and b/graphics/pokemon/charcadet/front.png differ diff --git a/graphics/pokemon/charcadet/icon.png b/graphics/pokemon/charcadet/icon.png index 50d9e46d8..cddec8626 100644 Binary files a/graphics/pokemon/charcadet/icon.png and b/graphics/pokemon/charcadet/icon.png differ diff --git a/graphics/pokemon/charcadet/normal.pal b/graphics/pokemon/charcadet/normal.pal index eae60870d..8d321cb3f 100644 --- a/graphics/pokemon/charcadet/normal.pal +++ b/graphics/pokemon/charcadet/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -179 54 48 -255 119 178 -238 13 35 -128 19 19 -15 15 15 -70 68 68 -99 97 97 -243 143 7 -27 33 35 -199 117 5 -255 255 255 -243 189 3 -14 64 173 -238 13 36 -16 88 254 +154 212 167 +96 65 165 +107 97 248 +216 121 202 +88 16 26 +144 36 55 +218 53 65 +8 8 8 +94 85 81 +51 49 49 +222 125 33 +22 28 32 +242 178 37 +255 18 18 +252 252 252 +240 218 1 diff --git a/graphics/pokemon/charcadet/shiny.pal b/graphics/pokemon/charcadet/shiny.pal index 30c3010bd..08a7479a8 100644 --- a/graphics/pokemon/charcadet/shiny.pal +++ b/graphics/pokemon/charcadet/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -179 54 48 -255 119 178 -238 13 35 -128 19 19 -15 15 15 -70 68 68 -99 97 97 -243 143 7 -27 33 35 -199 117 5 -255 255 255 -33 252 217 -14 64 173 -33 174 217 -16 88 254 +154 212 167 +96 65 165 +107 97 248 +216 121 202 +88 16 26 +144 36 55 +218 53 65 +8 8 8 +94 85 81 +51 49 49 +222 125 33 +22 28 32 +242 178 37 +33 148 236 +252 252 252 +115 214 234 diff --git a/graphics/pokemon/chi_yu/back.png b/graphics/pokemon/chi_yu/back.png index ff1f7c372..b4dc500d5 100644 Binary files a/graphics/pokemon/chi_yu/back.png and b/graphics/pokemon/chi_yu/back.png differ diff --git a/graphics/pokemon/chi_yu/front.png b/graphics/pokemon/chi_yu/front.png index 6a41c507a..5dfea02b9 100644 Binary files a/graphics/pokemon/chi_yu/front.png and b/graphics/pokemon/chi_yu/front.png differ diff --git a/graphics/pokemon/chi_yu/icon.png b/graphics/pokemon/chi_yu/icon.png index 29a9114af..1aeb8e6c5 100644 Binary files a/graphics/pokemon/chi_yu/icon.png and b/graphics/pokemon/chi_yu/icon.png differ diff --git a/graphics/pokemon/chi_yu/normal.pal b/graphics/pokemon/chi_yu/normal.pal index 368ffd90e..0a37008cd 100644 --- a/graphics/pokemon/chi_yu/normal.pal +++ b/graphics/pokemon/chi_yu/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -162 55 36 -244 52 47 -15 15 15 -243 94 56 -249 130 79 -240 167 85 -177 82 54 -252 245 155 -28 64 33 -193 196 189 -91 152 90 -131 184 132 -60 63 58 -72 116 71 -248 248 240 +154 212 167 +88 12 14 +138 25 27 +198 49 14 +8 8 8 +226 64 5 +248 191 103 +223 132 67 +160 32 8 +32 89 50 +169 195 186 +65 146 76 +135 202 128 +255 255 255 +6 44 22 +81 81 81 diff --git a/graphics/pokemon/chi_yu/shiny.pal b/graphics/pokemon/chi_yu/shiny.pal index e041f9654..624f80542 100644 --- a/graphics/pokemon/chi_yu/shiny.pal +++ b/graphics/pokemon/chi_yu/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -69 67 68 -94 94 94 -15 15 15 -89 128 162 -0 192 249 -124 197 231 -70 123 128 -186 254 253 -28 64 33 -193 196 189 -91 152 90 -131 184 132 -60 63 58 -72 116 71 -248 248 240 +154 212 167 +14 22 51 +56 63 78 +51 117 161 +8 8 8 +6 149 228 +142 237 243 +69 203 244 +39 93 170 +32 89 50 +169 195 186 +65 146 76 +135 202 128 +255 255 255 +6 44 22 +81 81 81 diff --git a/graphics/pokemon/chien_pao/back.png b/graphics/pokemon/chien_pao/back.png index 045e2c214..5c641437a 100644 Binary files a/graphics/pokemon/chien_pao/back.png and b/graphics/pokemon/chien_pao/back.png differ diff --git a/graphics/pokemon/chien_pao/front.png b/graphics/pokemon/chien_pao/front.png index b871128b4..b942da0ac 100644 Binary files a/graphics/pokemon/chien_pao/front.png and b/graphics/pokemon/chien_pao/front.png differ diff --git a/graphics/pokemon/chien_pao/icon.png b/graphics/pokemon/chien_pao/icon.png index eaad40054..d2626c655 100644 Binary files a/graphics/pokemon/chien_pao/icon.png and b/graphics/pokemon/chien_pao/icon.png differ diff --git a/graphics/pokemon/chien_pao/normal.pal b/graphics/pokemon/chien_pao/normal.pal index e5dca7fc5..ae9d76607 100644 --- a/graphics/pokemon/chien_pao/normal.pal +++ b/graphics/pokemon/chien_pao/normal.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -156 210 164 -114 89 64 -40 56 56 -248 248 248 -185 198 216 -227 227 227 -168 168 168 -0 0 0 -80 96 96 -84 84 84 -112 128 128 -122 122 122 -168 208 248 -248 248 248 -112 176 232 -141 152 168 +14 +154 212 167 +92 113 157 +71 103 116 +229 244 250 +165 219 239 +247 247 247 +197 185 192 +133 141 151 +8 8 8 +127 180 198 +73 143 240 +69 82 97 +27 36 46 +76 186 190 diff --git a/graphics/pokemon/chien_pao/shiny.pal b/graphics/pokemon/chien_pao/shiny.pal index a0e08cb82..c0279e59f 100644 --- a/graphics/pokemon/chien_pao/shiny.pal +++ b/graphics/pokemon/chien_pao/shiny.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -156 210 164 -114 89 64 -40 56 56 -187 155 118 -135 102 64 -227 227 227 -168 168 168 -0 0 0 -80 96 96 -84 84 84 -112 128 128 -122 122 122 -168 208 248 -248 248 248 -112 176 232 -103 69 29 +14 +154 212 167 +116 129 139 +33 27 22 +229 244 250 +235 240 244 +129 115 100 +92 77 71 +60 48 48 +8 8 8 +178 184 190 +73 143 240 +69 82 97 +27 36 46 +76 186 190 diff --git a/graphics/pokemon/clodsire/icon.png b/graphics/pokemon/clodsire/icon.png index bcc0e34e5..277d20250 100644 Binary files a/graphics/pokemon/clodsire/icon.png and b/graphics/pokemon/clodsire/icon.png differ diff --git a/graphics/pokemon/crocalor/icon.png b/graphics/pokemon/crocalor/icon.png index dea043b25..615e2e6de 100644 Binary files a/graphics/pokemon/crocalor/icon.png and b/graphics/pokemon/crocalor/icon.png differ diff --git a/graphics/pokemon/cyclizar/icon.png b/graphics/pokemon/cyclizar/icon.png index 64eba8196..cac59de32 100644 Binary files a/graphics/pokemon/cyclizar/icon.png and b/graphics/pokemon/cyclizar/icon.png differ diff --git a/graphics/pokemon/dachsbun/icon.png b/graphics/pokemon/dachsbun/icon.png index fe1caf375..cb05cd3be 100644 Binary files a/graphics/pokemon/dachsbun/icon.png and b/graphics/pokemon/dachsbun/icon.png differ diff --git a/graphics/pokemon/decidueye/hisuian/icon.png b/graphics/pokemon/decidueye/hisuian/icon.png index 997071396..bd490472d 100644 Binary files a/graphics/pokemon/decidueye/hisuian/icon.png and b/graphics/pokemon/decidueye/hisuian/icon.png differ diff --git a/graphics/pokemon/dipplin/icon.png b/graphics/pokemon/dipplin/icon.png index 5fab863bd..612ac77fc 100644 Binary files a/graphics/pokemon/dipplin/icon.png and b/graphics/pokemon/dipplin/icon.png differ diff --git a/graphics/pokemon/dolliv/back.png b/graphics/pokemon/dolliv/back.png index 9a179e325..4b46b2155 100644 Binary files a/graphics/pokemon/dolliv/back.png and b/graphics/pokemon/dolliv/back.png differ diff --git a/graphics/pokemon/dolliv/front.png b/graphics/pokemon/dolliv/front.png index 0d707db8d..332b88627 100644 Binary files a/graphics/pokemon/dolliv/front.png and b/graphics/pokemon/dolliv/front.png differ diff --git a/graphics/pokemon/dolliv/icon.png b/graphics/pokemon/dolliv/icon.png index 932b6e62e..bc2867dc7 100644 Binary files a/graphics/pokemon/dolliv/icon.png and b/graphics/pokemon/dolliv/icon.png differ diff --git a/graphics/pokemon/dolliv/normal.pal b/graphics/pokemon/dolliv/normal.pal index f2e41f0ac..1b6033b74 100644 --- a/graphics/pokemon/dolliv/normal.pal +++ b/graphics/pokemon/dolliv/normal.pal @@ -1,14 +1,18 @@ JASC-PAL 0100 -11 -153 210 164 -16 16 16 -47 108 46 -118 94 33 -132 193 54 -222 214 109 -182 165 81 -100 153 64 -205 193 124 -255 250 185 -242 242 242 +15 +154 212 167 +52 99 44 +154 225 71 +28 60 24 +83 112 41 +192 210 61 +144 151 63 +101 202 55 +8 8 8 +67 148 52 +186 205 133 +251 255 218 +82 97 77 +255 255 255 +191 195 175 diff --git a/graphics/pokemon/dolliv/shiny.pal b/graphics/pokemon/dolliv/shiny.pal index d46280571..c533b5220 100644 --- a/graphics/pokemon/dolliv/shiny.pal +++ b/graphics/pokemon/dolliv/shiny.pal @@ -1,14 +1,18 @@ JASC-PAL 0100 -11 -153 210 164 -16 16 16 -45 82 12 -40 25 54 -102 209 86 -89 77 95 -57 45 65 -91 160 71 -198 201 130 -251 255 178 -242 242 242 +15 +154 212 167 +27 73 19 +38 172 42 +28 60 24 +13 14 26 +65 53 83 +39 31 50 +40 142 53 +8 8 8 +36 97 36 +186 205 133 +251 255 218 +82 97 77 +255 255 255 +191 195 175 diff --git a/graphics/pokemon/dondozo/icon.png b/graphics/pokemon/dondozo/icon.png index 066128e0d..a704280ec 100644 Binary files a/graphics/pokemon/dondozo/icon.png and b/graphics/pokemon/dondozo/icon.png differ diff --git a/graphics/pokemon/dudunsparce/icon.png b/graphics/pokemon/dudunsparce/icon.png index cf9c3501f..ed9c47966 100644 Binary files a/graphics/pokemon/dudunsparce/icon.png and b/graphics/pokemon/dudunsparce/icon.png differ diff --git a/graphics/pokemon/eevee/partner/icon.png b/graphics/pokemon/eevee/partner/icon.png new file mode 100644 index 000000000..b202c1886 Binary files /dev/null and b/graphics/pokemon/eevee/partner/icon.png differ diff --git a/graphics/pokemon/eevee/partner/iconf.png b/graphics/pokemon/eevee/partner/iconf.png new file mode 100644 index 000000000..c82f753f3 Binary files /dev/null and b/graphics/pokemon/eevee/partner/iconf.png differ diff --git a/graphics/pokemon/electrode/hisuian/icon.png b/graphics/pokemon/electrode/hisuian/icon.png index d624e246c..76efc2982 100644 Binary files a/graphics/pokemon/electrode/hisuian/icon.png and b/graphics/pokemon/electrode/hisuian/icon.png differ diff --git a/graphics/pokemon/enamorus/icon.png b/graphics/pokemon/enamorus/icon.png index c127c0734..3c808f30b 100644 Binary files a/graphics/pokemon/enamorus/icon.png and b/graphics/pokemon/enamorus/icon.png differ diff --git a/graphics/pokemon/enamorus/therian/icon.png b/graphics/pokemon/enamorus/therian/icon.png index dfca5087f..fcaf4f41d 100644 Binary files a/graphics/pokemon/enamorus/therian/icon.png and b/graphics/pokemon/enamorus/therian/icon.png differ diff --git a/graphics/pokemon/espathra/icon.png b/graphics/pokemon/espathra/icon.png index cdca05731..12039cb25 100644 Binary files a/graphics/pokemon/espathra/icon.png and b/graphics/pokemon/espathra/icon.png differ diff --git a/graphics/pokemon/farigiraf/icon.png b/graphics/pokemon/farigiraf/icon.png index 0ef8b01ae..b6095a9e6 100644 Binary files a/graphics/pokemon/farigiraf/icon.png and b/graphics/pokemon/farigiraf/icon.png differ diff --git a/graphics/pokemon/fezandipiti/icon.png b/graphics/pokemon/fezandipiti/icon.png index 1bd6d0bf3..eb150e6db 100644 Binary files a/graphics/pokemon/fezandipiti/icon.png and b/graphics/pokemon/fezandipiti/icon.png differ diff --git a/graphics/pokemon/fidough/icon.png b/graphics/pokemon/fidough/icon.png index 2a6c4b15f..eea5ee85e 100644 Binary files a/graphics/pokemon/fidough/icon.png and b/graphics/pokemon/fidough/icon.png differ diff --git a/graphics/pokemon/finizen/icon.png b/graphics/pokemon/finizen/icon.png index b82b4c673..b689ed787 100644 Binary files a/graphics/pokemon/finizen/icon.png and b/graphics/pokemon/finizen/icon.png differ diff --git a/graphics/pokemon/flamigo/icon.png b/graphics/pokemon/flamigo/icon.png index 0f0381579..f1970373f 100644 Binary files a/graphics/pokemon/flamigo/icon.png and b/graphics/pokemon/flamigo/icon.png differ diff --git a/graphics/pokemon/flittle/icon.png b/graphics/pokemon/flittle/icon.png index f588d537e..1f96368e8 100644 Binary files a/graphics/pokemon/flittle/icon.png and b/graphics/pokemon/flittle/icon.png differ diff --git a/graphics/pokemon/floragato/icon.png b/graphics/pokemon/floragato/icon.png index aaf9a3b10..448ee0d19 100644 Binary files a/graphics/pokemon/floragato/icon.png and b/graphics/pokemon/floragato/icon.png differ diff --git a/graphics/pokemon/flutter_mane/back.png b/graphics/pokemon/flutter_mane/back.png index 8052cafc1..f05b2adf3 100644 Binary files a/graphics/pokemon/flutter_mane/back.png and b/graphics/pokemon/flutter_mane/back.png differ diff --git a/graphics/pokemon/flutter_mane/front.png b/graphics/pokemon/flutter_mane/front.png index ce45a4b92..77302c68d 100644 Binary files a/graphics/pokemon/flutter_mane/front.png and b/graphics/pokemon/flutter_mane/front.png differ diff --git a/graphics/pokemon/flutter_mane/icon.png b/graphics/pokemon/flutter_mane/icon.png index 2b65fc048..ab756908b 100644 Binary files a/graphics/pokemon/flutter_mane/icon.png and b/graphics/pokemon/flutter_mane/icon.png differ diff --git a/graphics/pokemon/flutter_mane/normal.pal b/graphics/pokemon/flutter_mane/normal.pal index a2b19738a..411015de6 100644 --- a/graphics/pokemon/flutter_mane/normal.pal +++ b/graphics/pokemon/flutter_mane/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -148 30 104 -16 16 16 -196 102 161 -230 162 205 -56 73 80 -109 149 164 -90 116 117 -136 56 24 -92 172 142 -255 162 162 -255 68 68 -136 214 185 -148 184 177 -180 26 65 -248 216 96 +154 212 167 +91 32 103 +216 119 236 +8 8 8 +158 63 179 +104 1 13 +244 48 79 +30 70 81 +13 39 45 +57 125 141 +42 94 105 +176 3 30 +99 176 167 +67 134 126 +199 151 91 +255 201 120 diff --git a/graphics/pokemon/flutter_mane/shiny.pal b/graphics/pokemon/flutter_mane/shiny.pal index 2db4e621e..5adee96be 100644 --- a/graphics/pokemon/flutter_mane/shiny.pal +++ b/graphics/pokemon/flutter_mane/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -180 79 0 -16 16 16 -216 152 64 -248 184 64 -56 73 80 -181 203 123 -105 141 69 -136 56 24 -200 200 200 -255 162 162 -255 68 68 -248 248 248 -222 232 154 -180 26 65 -248 216 96 +154 212 167 +155 60 14 +252 136 42 +8 8 8 +210 83 25 +104 1 13 +244 48 79 +80 113 69 +13 39 45 +178 219 121 +119 169 95 +176 3 30 +230 232 232 +170 178 178 +199 151 91 +255 201 120 diff --git a/graphics/pokemon/frigibax/icon.png b/graphics/pokemon/frigibax/icon.png index b50575cd4..e248df892 100644 Binary files a/graphics/pokemon/frigibax/icon.png and b/graphics/pokemon/frigibax/icon.png differ diff --git a/graphics/pokemon/fuecoco/icon.png b/graphics/pokemon/fuecoco/icon.png index 923e5f03f..31bcf19b0 100644 Binary files a/graphics/pokemon/fuecoco/icon.png and b/graphics/pokemon/fuecoco/icon.png differ diff --git a/graphics/pokemon/garganacl/icon.png b/graphics/pokemon/garganacl/icon.png index bc2d03847..e9a024527 100644 Binary files a/graphics/pokemon/garganacl/icon.png and b/graphics/pokemon/garganacl/icon.png differ diff --git a/graphics/pokemon/gholdengo/icon.png b/graphics/pokemon/gholdengo/icon.png index 99d0e122f..a49e6561a 100644 Binary files a/graphics/pokemon/gholdengo/icon.png and b/graphics/pokemon/gholdengo/icon.png differ diff --git a/graphics/pokemon/ghost/front.png:Zone.Identifier b/graphics/pokemon/ghost/front.png:Zone.Identifier deleted file mode 100644 index 053d1127c..000000000 --- a/graphics/pokemon/ghost/front.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -HostUrl=about:internet diff --git a/graphics/pokemon/gimmighoul/icon.png b/graphics/pokemon/gimmighoul/icon.png index 919140632..79167add3 100644 Binary files a/graphics/pokemon/gimmighoul/icon.png and b/graphics/pokemon/gimmighoul/icon.png differ diff --git a/graphics/pokemon/gimmighoul/roaming/icon.png b/graphics/pokemon/gimmighoul/roaming/icon.png index e803b5255..13ec7881b 100644 Binary files a/graphics/pokemon/gimmighoul/roaming/icon.png and b/graphics/pokemon/gimmighoul/roaming/icon.png differ diff --git a/graphics/pokemon/glimmet/icon.png b/graphics/pokemon/glimmet/icon.png index 1bc74def3..1b6e11e21 100644 Binary files a/graphics/pokemon/glimmet/icon.png and b/graphics/pokemon/glimmet/icon.png differ diff --git a/graphics/pokemon/glimmora/icon.png b/graphics/pokemon/glimmora/icon.png index 12e50f0cb..7ea164f38 100644 Binary files a/graphics/pokemon/glimmora/icon.png and b/graphics/pokemon/glimmora/icon.png differ diff --git a/graphics/pokemon/goodra/hisuian/icon.png b/graphics/pokemon/goodra/hisuian/icon.png index 321685434..283617c20 100644 Binary files a/graphics/pokemon/goodra/hisuian/icon.png and b/graphics/pokemon/goodra/hisuian/icon.png differ diff --git a/graphics/pokemon/gouging_fire/back.png b/graphics/pokemon/gouging_fire/back.png new file mode 100644 index 000000000..8a0f79ef5 Binary files /dev/null and b/graphics/pokemon/gouging_fire/back.png differ diff --git a/graphics/pokemon/gouging_fire/front.png b/graphics/pokemon/gouging_fire/front.png new file mode 100644 index 000000000..a399776f4 Binary files /dev/null and b/graphics/pokemon/gouging_fire/front.png differ diff --git a/graphics/pokemon/gouging_fire/icon.png b/graphics/pokemon/gouging_fire/icon.png new file mode 100644 index 000000000..38e429abb Binary files /dev/null and b/graphics/pokemon/gouging_fire/icon.png differ diff --git a/graphics/pokemon/gouging_fire/normal.pal b/graphics/pokemon/gouging_fire/normal.pal new file mode 100644 index 000000000..26c06154b --- /dev/null +++ b/graphics/pokemon/gouging_fire/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +76 44 11 +255 222 123 +8 8 8 +184 148 35 +249 199 40 +99 86 99 +210 212 207 +172 158 149 +53 140 58 +78 198 90 +136 17 14 +192 25 22 +151 77 32 +81 36 0 +207 114 56 diff --git a/graphics/pokemon/gouging_fire/shiny.pal b/graphics/pokemon/gouging_fire/shiny.pal new file mode 100644 index 000000000..115a24907 --- /dev/null +++ b/graphics/pokemon/gouging_fire/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +61 17 25 +249 189 116 +8 8 8 +199 100 36 +235 148 37 +99 86 99 +210 212 207 +172 158 149 +39 146 176 +70 220 210 +51 50 50 +93 92 92 +116 61 52 +61 17 25 +152 96 57 diff --git a/graphics/pokemon/grafaiai/icon.png b/graphics/pokemon/grafaiai/icon.png index 9e027481a..3ba680354 100644 Binary files a/graphics/pokemon/grafaiai/icon.png and b/graphics/pokemon/grafaiai/icon.png differ diff --git a/graphics/pokemon/great_tusk/icon.png b/graphics/pokemon/great_tusk/icon.png index 30384d570..60bbe9f41 100644 Binary files a/graphics/pokemon/great_tusk/icon.png and b/graphics/pokemon/great_tusk/icon.png differ diff --git a/graphics/pokemon/greavard/icon.png b/graphics/pokemon/greavard/icon.png index a43e9a387..5d0e27f7b 100644 Binary files a/graphics/pokemon/greavard/icon.png and b/graphics/pokemon/greavard/icon.png differ diff --git a/graphics/pokemon/growlithe/hisuian/icon.png b/graphics/pokemon/growlithe/hisuian/icon.png index b2b03733f..71a2ffdba 100644 Binary files a/graphics/pokemon/growlithe/hisuian/icon.png and b/graphics/pokemon/growlithe/hisuian/icon.png differ diff --git a/graphics/pokemon/houndstone/icon.png b/graphics/pokemon/houndstone/icon.png index 51d26434c..9777c7b79 100644 Binary files a/graphics/pokemon/houndstone/icon.png and b/graphics/pokemon/houndstone/icon.png differ diff --git a/graphics/pokemon/hydrapple/back.png b/graphics/pokemon/hydrapple/back.png new file mode 100644 index 000000000..f84712a50 Binary files /dev/null and b/graphics/pokemon/hydrapple/back.png differ diff --git a/graphics/pokemon/hydrapple/front.png b/graphics/pokemon/hydrapple/front.png new file mode 100644 index 000000000..eecdea6d7 Binary files /dev/null and b/graphics/pokemon/hydrapple/front.png differ diff --git a/graphics/pokemon/hydrapple/icon.png b/graphics/pokemon/hydrapple/icon.png new file mode 100644 index 000000000..1d7ce98bc Binary files /dev/null and b/graphics/pokemon/hydrapple/icon.png differ diff --git a/graphics/pokemon/hydrapple/normal.pal b/graphics/pokemon/hydrapple/normal.pal new file mode 100644 index 000000000..6fec9a795 --- /dev/null +++ b/graphics/pokemon/hydrapple/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 56 32 +16 16 16 +152 24 16 +96 16 8 +32 72 24 +136 88 56 +216 80 64 +72 128 56 +248 160 160 +192 168 80 +40 96 8 +88 168 24 +160 216 72 +240 200 80 +32 88 8 diff --git a/graphics/pokemon/hydrapple/shiny.pal b/graphics/pokemon/hydrapple/shiny.pal new file mode 100644 index 000000000..d3d0f68f9 --- /dev/null +++ b/graphics/pokemon/hydrapple/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 56 32 +16 16 16 +216 136 0 +192 80 0 +32 72 24 +136 88 56 +248 208 16 +72 128 56 +248 232 144 +192 168 80 +40 96 8 +88 168 24 +160 216 72 +240 200 80 +32 88 8 diff --git a/graphics/pokemon/iron_boulder/back.png b/graphics/pokemon/iron_boulder/back.png new file mode 100644 index 000000000..3c7cf2bf3 Binary files /dev/null and b/graphics/pokemon/iron_boulder/back.png differ diff --git a/graphics/pokemon/iron_boulder/front.png b/graphics/pokemon/iron_boulder/front.png new file mode 100644 index 000000000..cf306085d Binary files /dev/null and b/graphics/pokemon/iron_boulder/front.png differ diff --git a/graphics/pokemon/iron_boulder/icon.png b/graphics/pokemon/iron_boulder/icon.png new file mode 100644 index 000000000..eafb584cc Binary files /dev/null and b/graphics/pokemon/iron_boulder/icon.png differ diff --git a/graphics/pokemon/iron_boulder/normal.pal b/graphics/pokemon/iron_boulder/normal.pal new file mode 100644 index 000000000..d6a1404c0 --- /dev/null +++ b/graphics/pokemon/iron_boulder/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +35 26 26 +62 53 44 +96 79 70 +113 92 83 +110 110 110 +245 245 245 +210 210 210 +193 99 32 +161 161 161 +254 172 53 +250 226 167 +123 51 30 +186 83 52 +242 112 4 diff --git a/graphics/pokemon/iron_boulder/shiny.pal b/graphics/pokemon/iron_boulder/shiny.pal new file mode 100644 index 000000000..9ff1b4207 --- /dev/null +++ b/graphics/pokemon/iron_boulder/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +82 81 103 +149 148 170 +203 204 218 +249 248 250 +91 100 116 +228 232 235 +191 197 204 +193 99 32 +148 156 170 +254 172 53 +250 226 167 +97 95 107 +150 148 160 +209 204 217 diff --git a/graphics/pokemon/iron_bundle/back.png b/graphics/pokemon/iron_bundle/back.png index 78451dda9..163573847 100644 Binary files a/graphics/pokemon/iron_bundle/back.png and b/graphics/pokemon/iron_bundle/back.png differ diff --git a/graphics/pokemon/iron_bundle/front.png b/graphics/pokemon/iron_bundle/front.png index a98137941..a4fe68b4f 100644 Binary files a/graphics/pokemon/iron_bundle/front.png and b/graphics/pokemon/iron_bundle/front.png differ diff --git a/graphics/pokemon/iron_bundle/icon.png b/graphics/pokemon/iron_bundle/icon.png index 99b380a54..df537e34d 100644 Binary files a/graphics/pokemon/iron_bundle/icon.png and b/graphics/pokemon/iron_bundle/icon.png differ diff --git a/graphics/pokemon/iron_bundle/normal.pal b/graphics/pokemon/iron_bundle/normal.pal index ea35b3b98..4c712297b 100644 --- a/graphics/pokemon/iron_bundle/normal.pal +++ b/graphics/pokemon/iron_bundle/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -189 246 255 +154 212 167 +110 110 110 +210 210 210 +161 161 161 +8 8 8 +245 245 245 +141 36 22 +194 54 33 +217 95 85 +46 109 165 90 194 255 -255 206 65 -205 141 41 -123 68 0 -0 0 0 -41 36 41 -217 69 55 -255 250 250 -142 43 43 -65 68 74 -79 30 31 -174 174 182 -90 93 90 -65 141 180 +166 129 73 +255 225 115 +178 228 255 +102 30 12 +48 48 48 diff --git a/graphics/pokemon/iron_bundle/shiny.pal b/graphics/pokemon/iron_bundle/shiny.pal index b27dde2a6..818d73de9 100644 --- a/graphics/pokemon/iron_bundle/shiny.pal +++ b/graphics/pokemon/iron_bundle/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -189 246 255 +154 212 167 +80 89 98 +166 174 182 +116 130 141 +8 8 8 +218 221 224 +116 130 141 +166 174 182 +218 221 224 +46 109 165 90 194 255 -255 206 65 -205 141 41 -123 68 0 -0 0 0 -41 36 41 -172 170 180 -197 198 189 -98 101 115 -65 68 74 -82 80 82 -156 141 148 -90 93 90 -65 141 180 +109 116 132 +181 183 192 +178 228 255 +80 89 98 +48 48 48 diff --git a/graphics/pokemon/iron_crown/back.png b/graphics/pokemon/iron_crown/back.png new file mode 100644 index 000000000..a3a513550 Binary files /dev/null and b/graphics/pokemon/iron_crown/back.png differ diff --git a/graphics/pokemon/iron_crown/front.png b/graphics/pokemon/iron_crown/front.png new file mode 100644 index 000000000..af3ab5bc9 Binary files /dev/null and b/graphics/pokemon/iron_crown/front.png differ diff --git a/graphics/pokemon/iron_crown/icon.png b/graphics/pokemon/iron_crown/icon.png new file mode 100644 index 000000000..cb127c82d Binary files /dev/null and b/graphics/pokemon/iron_crown/icon.png differ diff --git a/graphics/pokemon/iron_crown/normal.pal b/graphics/pokemon/iron_crown/normal.pal new file mode 100644 index 000000000..2df8f4b6a --- /dev/null +++ b/graphics/pokemon/iron_crown/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +0 163 172 +96 240 240 +210 248 248 +8 8 8 +179 146 50 +122 86 30 +130 138 163 +240 194 19 +1 68 78 +19 163 180 +59 202 202 +19 114 130 +60 68 78 +202 202 218 +162 202 218 diff --git a/graphics/pokemon/iron_crown/shiny.pal b/graphics/pokemon/iron_crown/shiny.pal new file mode 100644 index 000000000..aaf724e6b --- /dev/null +++ b/graphics/pokemon/iron_crown/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +0 163 172 +96 240 240 +210 248 248 +8 8 8 +171 172 186 +50 60 68 +130 138 163 +234 234 240 +96 96 104 +194 194 202 +248 248 251 +138 146 154 +60 68 78 +202 202 218 +162 202 218 diff --git a/graphics/pokemon/iron_hands/icon.png b/graphics/pokemon/iron_hands/icon.png index d28b62a6d..5fc933dd9 100644 Binary files a/graphics/pokemon/iron_hands/icon.png and b/graphics/pokemon/iron_hands/icon.png differ diff --git a/graphics/pokemon/iron_jugulis/icon.png b/graphics/pokemon/iron_jugulis/icon.png index 14ae400df..c043e15c6 100644 Binary files a/graphics/pokemon/iron_jugulis/icon.png and b/graphics/pokemon/iron_jugulis/icon.png differ diff --git a/graphics/pokemon/iron_leaves/icon.png b/graphics/pokemon/iron_leaves/icon.png index a5d308e6c..16eb1d5dc 100644 Binary files a/graphics/pokemon/iron_leaves/icon.png and b/graphics/pokemon/iron_leaves/icon.png differ diff --git a/graphics/pokemon/iron_moth/icon.png b/graphics/pokemon/iron_moth/icon.png index ac43ad66e..b42f88fc0 100644 Binary files a/graphics/pokemon/iron_moth/icon.png and b/graphics/pokemon/iron_moth/icon.png differ diff --git a/graphics/pokemon/iron_thorns/icon.png b/graphics/pokemon/iron_thorns/icon.png index 48391a50c..2c1e08121 100644 Binary files a/graphics/pokemon/iron_thorns/icon.png and b/graphics/pokemon/iron_thorns/icon.png differ diff --git a/graphics/pokemon/iron_treads/icon.png b/graphics/pokemon/iron_treads/icon.png index a75d7f93c..25e9038a6 100644 Binary files a/graphics/pokemon/iron_treads/icon.png and b/graphics/pokemon/iron_treads/icon.png differ diff --git a/graphics/pokemon/iron_valiant/icon.png b/graphics/pokemon/iron_valiant/icon.png index c1441e5dd..2d66aa5ae 100644 Binary files a/graphics/pokemon/iron_valiant/icon.png and b/graphics/pokemon/iron_valiant/icon.png differ diff --git a/graphics/pokemon/kilowattrel/icon.png b/graphics/pokemon/kilowattrel/icon.png index d4e5f7211..cfa950dd2 100644 Binary files a/graphics/pokemon/kilowattrel/icon.png and b/graphics/pokemon/kilowattrel/icon.png differ diff --git a/graphics/pokemon/kingambit/icon.png b/graphics/pokemon/kingambit/icon.png index ce85b3c19..c4d91769d 100644 Binary files a/graphics/pokemon/kingambit/icon.png and b/graphics/pokemon/kingambit/icon.png differ diff --git a/graphics/pokemon/klawf/icon.png b/graphics/pokemon/klawf/icon.png index e7c232f13..6b393ebdf 100644 Binary files a/graphics/pokemon/klawf/icon.png and b/graphics/pokemon/klawf/icon.png differ diff --git a/graphics/pokemon/kleavor/icon.png b/graphics/pokemon/kleavor/icon.png index 4443cc143..63d965359 100644 Binary files a/graphics/pokemon/kleavor/icon.png and b/graphics/pokemon/kleavor/icon.png differ diff --git a/graphics/pokemon/koraidon/icon.png b/graphics/pokemon/koraidon/icon.png index 127a03e5d..404825561 100644 Binary files a/graphics/pokemon/koraidon/icon.png and b/graphics/pokemon/koraidon/icon.png differ diff --git a/graphics/pokemon/lechonk/icon.png b/graphics/pokemon/lechonk/icon.png index d368c427b..6123d0773 100644 Binary files a/graphics/pokemon/lechonk/icon.png and b/graphics/pokemon/lechonk/icon.png differ diff --git a/graphics/pokemon/lilligant/hisuian/icon.png b/graphics/pokemon/lilligant/hisuian/icon.png index c8149843f..67809d889 100644 Binary files a/graphics/pokemon/lilligant/hisuian/icon.png and b/graphics/pokemon/lilligant/hisuian/icon.png differ diff --git a/graphics/pokemon/lokix/icon.png b/graphics/pokemon/lokix/icon.png index 205de36a0..e6e944b6b 100644 Binary files a/graphics/pokemon/lokix/icon.png and b/graphics/pokemon/lokix/icon.png differ diff --git a/graphics/pokemon/mabosstiff/back.png b/graphics/pokemon/mabosstiff/back.png index d572c7cbd..057fc137a 100644 Binary files a/graphics/pokemon/mabosstiff/back.png and b/graphics/pokemon/mabosstiff/back.png differ diff --git a/graphics/pokemon/mabosstiff/front.png b/graphics/pokemon/mabosstiff/front.png index cf91e34c2..fd5184deb 100644 Binary files a/graphics/pokemon/mabosstiff/front.png and b/graphics/pokemon/mabosstiff/front.png differ diff --git a/graphics/pokemon/mabosstiff/icon.png b/graphics/pokemon/mabosstiff/icon.png index 3b99df2d4..e18a9d6c1 100644 Binary files a/graphics/pokemon/mabosstiff/icon.png and b/graphics/pokemon/mabosstiff/icon.png differ diff --git a/graphics/pokemon/mabosstiff/normal.pal b/graphics/pokemon/mabosstiff/normal.pal index 5c433266d..141b07dea 100644 --- a/graphics/pokemon/mabosstiff/normal.pal +++ b/graphics/pokemon/mabosstiff/normal.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -152 208 160 -96 88 96 -48 48 56 -168 168 168 -200 200 200 -120 128 136 +14 +154 212 167 +62 62 53 +185 185 185 +129 121 129 +217 217 217 +17 17 17 +35 35 26 8 8 8 -48 40 40 -64 64 56 -96 80 64 -128 120 104 -248 240 144 -32 24 24 -248 200 128 -248 176 72 -136 96 48 +35 35 35 +96 79 70 +129 113 104 +248 178 70 +70 62 53 +137 104 35 diff --git a/graphics/pokemon/mabosstiff/shiny.pal b/graphics/pokemon/mabosstiff/shiny.pal index a3f922e95..35e7107fb 100644 --- a/graphics/pokemon/mabosstiff/shiny.pal +++ b/graphics/pokemon/mabosstiff/shiny.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -152 208 160 -96 88 96 -48 48 56 -168 168 168 -200 200 200 -120 128 136 +14 +154 212 167 +62 62 53 +185 185 185 +129 121 129 +217 217 217 +17 17 17 +35 35 26 8 8 8 -40 40 48 -64 64 56 -104 96 112 -160 144 168 -248 240 144 -32 24 24 -248 200 128 -248 176 72 -136 96 48 +35 35 35 +82 77 115 +127 113 149 +248 178 70 +49 45 70 +137 104 35 diff --git a/graphics/pokemon/maschiff/icon.png b/graphics/pokemon/maschiff/icon.png index f5127dcc4..cb2308d15 100644 Binary files a/graphics/pokemon/maschiff/icon.png and b/graphics/pokemon/maschiff/icon.png differ diff --git a/graphics/pokemon/maushold/four/icon.png b/graphics/pokemon/maushold/four/icon.png index 97c2d7082..fc6684d61 100644 Binary files a/graphics/pokemon/maushold/four/icon.png and b/graphics/pokemon/maushold/four/icon.png differ diff --git a/graphics/pokemon/maushold/icon.png b/graphics/pokemon/maushold/icon.png index 728aca58a..48cb9d2c2 100644 Binary files a/graphics/pokemon/maushold/icon.png and b/graphics/pokemon/maushold/icon.png differ diff --git a/graphics/pokemon/meowscarada/icon.png b/graphics/pokemon/meowscarada/icon.png index 5b7982145..2a6d199d2 100644 Binary files a/graphics/pokemon/meowscarada/icon.png and b/graphics/pokemon/meowscarada/icon.png differ diff --git a/graphics/pokemon/miraidon/icon.png b/graphics/pokemon/miraidon/icon.png index 3ccf056b5..776082feb 100644 Binary files a/graphics/pokemon/miraidon/icon.png and b/graphics/pokemon/miraidon/icon.png differ diff --git a/graphics/pokemon/munkidori/icon.png b/graphics/pokemon/munkidori/icon.png index 20144ff87..338d84d3e 100644 Binary files a/graphics/pokemon/munkidori/icon.png and b/graphics/pokemon/munkidori/icon.png differ diff --git a/graphics/pokemon/nacli/icon.png b/graphics/pokemon/nacli/icon.png index ed0895c1d..86522af3a 100644 Binary files a/graphics/pokemon/nacli/icon.png and b/graphics/pokemon/nacli/icon.png differ diff --git a/graphics/pokemon/naclstack/icon.png b/graphics/pokemon/naclstack/icon.png index a536c3818..133228573 100644 Binary files a/graphics/pokemon/naclstack/icon.png and b/graphics/pokemon/naclstack/icon.png differ diff --git a/graphics/pokemon/nymble/icon.png b/graphics/pokemon/nymble/icon.png index 791bd0a42..74c4c79b5 100644 Binary files a/graphics/pokemon/nymble/icon.png and b/graphics/pokemon/nymble/icon.png differ diff --git a/graphics/pokemon/ogerpon/cornerstone/icon.png b/graphics/pokemon/ogerpon/cornerstone/icon.png new file mode 100644 index 000000000..7a8323c81 Binary files /dev/null and b/graphics/pokemon/ogerpon/cornerstone/icon.png differ diff --git a/graphics/pokemon/ogerpon/cornerstone/shiny.pal b/graphics/pokemon/ogerpon/cornerstone/shiny.pal new file mode 100644 index 000000000..b4d7d1519 --- /dev/null +++ b/graphics/pokemon/ogerpon/cornerstone/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +148 209 161 +42 44 41 +21 158 7 +0 0 0 +74 76 73 +25 27 24 +61 113 53 +109 99 108 +133 139 139 +53 134 168 +55 189 227 +194 139 62 +255 197 74 +212 230 247 +124 162 56 diff --git a/graphics/pokemon/ogerpon/hearthflame/icon.png b/graphics/pokemon/ogerpon/hearthflame/icon.png new file mode 100644 index 000000000..108ac492c Binary files /dev/null and b/graphics/pokemon/ogerpon/hearthflame/icon.png differ diff --git a/graphics/pokemon/ogerpon/hearthflame/shiny.pal b/graphics/pokemon/ogerpon/hearthflame/shiny.pal new file mode 100644 index 000000000..f874367b4 --- /dev/null +++ b/graphics/pokemon/ogerpon/hearthflame/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 210 164 +156 153 172 +131 28 24 +49 133 172 +213 230 246 +41 44 41 +255 198 74 +124 162 56 +16 157 0 +57 113 49 +49 190 230 +0 0 0 +164 52 49 +74 76 74 +189 137 90 +230 60 49 diff --git a/graphics/pokemon/ogerpon/icon.png b/graphics/pokemon/ogerpon/icon.png index 65448e8d1..96f048f15 100644 Binary files a/graphics/pokemon/ogerpon/icon.png and b/graphics/pokemon/ogerpon/icon.png differ diff --git a/graphics/pokemon/ogerpon/normal.pal b/graphics/pokemon/ogerpon/normal.pal index 67a862587..8f715fd81 100644 --- a/graphics/pokemon/ogerpon/normal.pal +++ b/graphics/pokemon/ogerpon/normal.pal @@ -9,7 +9,7 @@ JASC-PAL 17 106 68 21 158 7 74 76 73 -61 113 53 +61 97 53 175 216 159 251 253 250 139 99 57 diff --git a/graphics/pokemon/ogerpon/shiny.pal b/graphics/pokemon/ogerpon/shiny.pal new file mode 100644 index 000000000..a96c55d35 --- /dev/null +++ b/graphics/pokemon/ogerpon/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +148 209 161 +42 44 41 +0 1 0 +27 70 15 +0 164 153 +17 106 68 +21 158 7 +74 76 73 +61 97 53 +175 216 159 +251 253 250 +139 99 57 +124 162 56 +219 157 92 +83 133 90 diff --git a/graphics/pokemon/ogerpon/wellspring/icon.png b/graphics/pokemon/ogerpon/wellspring/icon.png new file mode 100644 index 000000000..0257bc38e Binary files /dev/null and b/graphics/pokemon/ogerpon/wellspring/icon.png differ diff --git a/graphics/pokemon/ogerpon/wellspring/shiny.pal b/graphics/pokemon/ogerpon/wellspring/shiny.pal new file mode 100644 index 000000000..bca722c95 --- /dev/null +++ b/graphics/pokemon/ogerpon/wellspring/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 209 161 +42 44 41 +21 158 7 +74 76 73 +0 0 0 +61 113 53 +11 64 121 +15 90 170 +0 126 229 +53 134 168 +71 85 100 +55 189 227 +212 230 247 +124 162 56 +169 122 74 +152 155 171 diff --git a/graphics/pokemon/oinkologne/female/icon.png b/graphics/pokemon/oinkologne/female/icon.png index 0acd6e271..c1b272c73 100644 Binary files a/graphics/pokemon/oinkologne/female/icon.png and b/graphics/pokemon/oinkologne/female/icon.png differ diff --git a/graphics/pokemon/oinkologne/female/iconTODO.png b/graphics/pokemon/oinkologne/female/iconTODO.png deleted file mode 100644 index 36ce1eb7f..000000000 Binary files a/graphics/pokemon/oinkologne/female/iconTODO.png and /dev/null differ diff --git a/graphics/pokemon/oinkologne/icon.png b/graphics/pokemon/oinkologne/icon.png index 0acd6e271..055bfeab8 100644 Binary files a/graphics/pokemon/oinkologne/icon.png and b/graphics/pokemon/oinkologne/icon.png differ diff --git a/graphics/pokemon/okidogi/icon.png b/graphics/pokemon/okidogi/icon.png index 91984549c..fd4809f80 100644 Binary files a/graphics/pokemon/okidogi/icon.png and b/graphics/pokemon/okidogi/icon.png differ diff --git a/graphics/pokemon/orthworm/icon.png b/graphics/pokemon/orthworm/icon.png index 9cb39cc79..5c4dd5452 100644 Binary files a/graphics/pokemon/orthworm/icon.png and b/graphics/pokemon/orthworm/icon.png differ diff --git a/graphics/pokemon/overqwil/icon.png b/graphics/pokemon/overqwil/icon.png index 661013b72..9af70e805 100644 Binary files a/graphics/pokemon/overqwil/icon.png and b/graphics/pokemon/overqwil/icon.png differ diff --git a/graphics/pokemon/palafin/hero/icon.png b/graphics/pokemon/palafin/hero/icon.png index 8dd8a1184..8f581581c 100644 Binary files a/graphics/pokemon/palafin/hero/icon.png and b/graphics/pokemon/palafin/hero/icon.png differ diff --git a/graphics/pokemon/palafin/icon.png b/graphics/pokemon/palafin/icon.png index d24e846fc..14de30254 100644 Binary files a/graphics/pokemon/palafin/icon.png and b/graphics/pokemon/palafin/icon.png differ diff --git a/graphics/pokemon/pawmi/icon.png b/graphics/pokemon/pawmi/icon.png index a7fc302fe..bcef3f24b 100644 Binary files a/graphics/pokemon/pawmi/icon.png and b/graphics/pokemon/pawmi/icon.png differ diff --git a/graphics/pokemon/pawmo/icon.png b/graphics/pokemon/pawmo/icon.png index 41cc6b4f9..ef69e9e30 100644 Binary files a/graphics/pokemon/pawmo/icon.png and b/graphics/pokemon/pawmo/icon.png differ diff --git a/graphics/pokemon/pawmot/icon.png b/graphics/pokemon/pawmot/icon.png index cc9d2e942..90b36e737 100644 Binary files a/graphics/pokemon/pawmot/icon.png and b/graphics/pokemon/pawmot/icon.png differ diff --git a/graphics/pokemon/pecharunt/back.png b/graphics/pokemon/pecharunt/back.png new file mode 100644 index 000000000..2948387f0 Binary files /dev/null and b/graphics/pokemon/pecharunt/back.png differ diff --git a/graphics/pokemon/pecharunt/front.png b/graphics/pokemon/pecharunt/front.png new file mode 100644 index 000000000..9ee6108bf Binary files /dev/null and b/graphics/pokemon/pecharunt/front.png differ diff --git a/graphics/pokemon/pecharunt/icon.png b/graphics/pokemon/pecharunt/icon.png new file mode 100644 index 000000000..102762374 Binary files /dev/null and b/graphics/pokemon/pecharunt/icon.png differ diff --git a/graphics/pokemon/pecharunt/normal.pal b/graphics/pokemon/pecharunt/normal.pal new file mode 100644 index 000000000..ae673bc0b --- /dev/null +++ b/graphics/pokemon/pecharunt/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +68 68 77 +80 11 62 +186 33 155 +36 36 42 +255 39 255 +35 20 68 +92 52 154 +220 147 205 +55 30 102 +139 93 215 +255 255 255 +189 189 189 +129 26 101 +148 50 154 diff --git a/graphics/pokemon/pecharunt/shiny.pal b/graphics/pokemon/pecharunt/shiny.pal new file mode 100644 index 000000000..da27c6845 --- /dev/null +++ b/graphics/pokemon/pecharunt/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +68 68 77 +80 11 62 +186 33 155 +36 36 42 +255 39 255 +144 80 30 +234 176 47 +220 147 205 +193 133 36 +244 208 96 +255 255 255 +189 189 189 +129 26 101 +148 50 154 diff --git a/graphics/pokemon/pikachu/partner/icon.png b/graphics/pokemon/pikachu/partner/icon.png new file mode 100644 index 000000000..891f0d1b3 Binary files /dev/null and b/graphics/pokemon/pikachu/partner/icon.png differ diff --git a/graphics/pokemon/pikachu/partner/iconf.png b/graphics/pokemon/pikachu/partner/iconf.png new file mode 100644 index 000000000..8779879f0 Binary files /dev/null and b/graphics/pokemon/pikachu/partner/iconf.png differ diff --git a/graphics/pokemon/poltchageist/icon.png b/graphics/pokemon/poltchageist/icon.png index 6b686ad08..55fc98ec8 100644 Binary files a/graphics/pokemon/poltchageist/icon.png and b/graphics/pokemon/poltchageist/icon.png differ diff --git a/graphics/pokemon/quaquaval/icon.png b/graphics/pokemon/quaquaval/icon.png index 4e68d84ff..d9b37ea90 100644 Binary files a/graphics/pokemon/quaquaval/icon.png and b/graphics/pokemon/quaquaval/icon.png differ diff --git a/graphics/pokemon/quaxly/icon.png b/graphics/pokemon/quaxly/icon.png index 403695744..6df869ecd 100644 Binary files a/graphics/pokemon/quaxly/icon.png and b/graphics/pokemon/quaxly/icon.png differ diff --git a/graphics/pokemon/quaxwell/icon.png b/graphics/pokemon/quaxwell/icon.png index 3806542c0..73a2d4ace 100644 Binary files a/graphics/pokemon/quaxwell/icon.png and b/graphics/pokemon/quaxwell/icon.png differ diff --git a/graphics/pokemon/qwilfish/hisuian/icon.png b/graphics/pokemon/qwilfish/hisuian/icon.png index 6936dfe88..30b8f5ad6 100644 Binary files a/graphics/pokemon/qwilfish/hisuian/icon.png and b/graphics/pokemon/qwilfish/hisuian/icon.png differ diff --git a/graphics/pokemon/rabsca/icon.png b/graphics/pokemon/rabsca/icon.png index 57c93e30a..83e9bcbeb 100644 Binary files a/graphics/pokemon/rabsca/icon.png and b/graphics/pokemon/rabsca/icon.png differ diff --git a/graphics/pokemon/raging_bolt/back.png b/graphics/pokemon/raging_bolt/back.png new file mode 100644 index 000000000..ae03ffab6 Binary files /dev/null and b/graphics/pokemon/raging_bolt/back.png differ diff --git a/graphics/pokemon/raging_bolt/front.png b/graphics/pokemon/raging_bolt/front.png new file mode 100644 index 000000000..01e805fe9 Binary files /dev/null and b/graphics/pokemon/raging_bolt/front.png differ diff --git a/graphics/pokemon/raging_bolt/icon.png b/graphics/pokemon/raging_bolt/icon.png new file mode 100644 index 000000000..f31beb829 Binary files /dev/null and b/graphics/pokemon/raging_bolt/icon.png differ diff --git a/graphics/pokemon/raging_bolt/normal.pal b/graphics/pokemon/raging_bolt/normal.pal new file mode 100644 index 000000000..a2feea268 --- /dev/null +++ b/graphics/pokemon/raging_bolt/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +80 79 87 +8 8 10 +8 8 8 +86 34 117 +123 98 19 +255 255 255 +114 81 156 +165 128 211 +192 154 43 +247 198 58 +149 149 149 +198 199 199 +197 64 62 +143 213 230 +118 104 104 diff --git a/graphics/pokemon/raging_bolt/shiny.pal b/graphics/pokemon/raging_bolt/shiny.pal new file mode 100644 index 000000000..bec4088cc --- /dev/null +++ b/graphics/pokemon/raging_bolt/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +94 82 82 +8 8 10 +8 8 8 +104 84 22 +140 73 2 +255 255 255 +182 149 49 +231 206 90 +201 118 6 +247 159 53 +175 160 153 +198 199 199 +11 125 232 +206 206 214 +118 104 104 diff --git a/graphics/pokemon/rellor/icon.png b/graphics/pokemon/rellor/icon.png index 56ea14034..9c443bcee 100644 Binary files a/graphics/pokemon/rellor/icon.png and b/graphics/pokemon/rellor/icon.png differ diff --git a/graphics/pokemon/revavroom/icon.png b/graphics/pokemon/revavroom/icon.png index 8d3a2ee0c..ba85a6e3e 100644 Binary files a/graphics/pokemon/revavroom/icon.png and b/graphics/pokemon/revavroom/icon.png differ diff --git a/graphics/pokemon/roaring_moon/icon.png b/graphics/pokemon/roaring_moon/icon.png index d8d82fb01..e9dabef1a 100644 Binary files a/graphics/pokemon/roaring_moon/icon.png and b/graphics/pokemon/roaring_moon/icon.png differ diff --git a/graphics/pokemon/samurott/hisuian/icon.png b/graphics/pokemon/samurott/hisuian/icon.png index fdcbe6718..8ffa1a3f1 100644 Binary files a/graphics/pokemon/samurott/hisuian/icon.png and b/graphics/pokemon/samurott/hisuian/icon.png differ diff --git a/graphics/pokemon/sandy_shocks/back.png b/graphics/pokemon/sandy_shocks/back.png index 2ee0ab030..72d7efb68 100644 Binary files a/graphics/pokemon/sandy_shocks/back.png and b/graphics/pokemon/sandy_shocks/back.png differ diff --git a/graphics/pokemon/sandy_shocks/front.png b/graphics/pokemon/sandy_shocks/front.png index 95b0124a6..8709f3865 100644 Binary files a/graphics/pokemon/sandy_shocks/front.png and b/graphics/pokemon/sandy_shocks/front.png differ diff --git a/graphics/pokemon/sandy_shocks/icon.png b/graphics/pokemon/sandy_shocks/icon.png index 99d693a1a..956607df1 100644 Binary files a/graphics/pokemon/sandy_shocks/icon.png and b/graphics/pokemon/sandy_shocks/icon.png differ diff --git a/graphics/pokemon/sandy_shocks/normal.pal b/graphics/pokemon/sandy_shocks/normal.pal index 4b0c513bd..97a97e3df 100644 --- a/graphics/pokemon/sandy_shocks/normal.pal +++ b/graphics/pokemon/sandy_shocks/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -238 24 0 -213 170 57 -213 246 222 -180 214 189 -180 182 180 -115 101 131 -41 36 32 -139 182 164 -90 93 90 -139 137 139 -41 129 172 -57 48 49 -255 222 90 -0 0 0 -90 129 98 +154 212 167 +54 45 45 +8 8 8 +84 77 76 +141 40 34 +238 97 86 +235 250 255 +137 141 141 +65 103 113 +191 216 230 +113 80 154 +120 165 182 +33 113 154 +98 188 215 +250 224 74 +197 199 119 diff --git a/graphics/pokemon/sandy_shocks/shiny.pal b/graphics/pokemon/sandy_shocks/shiny.pal index 6a89c90cc..09062f2e9 100644 --- a/graphics/pokemon/sandy_shocks/shiny.pal +++ b/graphics/pokemon/sandy_shocks/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -238 24 0 -213 170 57 -255 248 179 -184 179 120 -180 182 180 -115 101 131 -41 36 32 -212 179 120 -90 93 90 -139 137 139 -41 129 172 -57 48 49 -255 222 90 -0 0 0 -153 137 87 +154 212 167 +54 45 45 +8 8 8 +84 77 76 +78 70 69 +102 93 92 +232 223 175 +108 99 98 +99 91 59 +199 190 142 +75 68 67 +135 124 80 +81 74 73 +105 96 95 +250 224 74 +200 181 77 diff --git a/graphics/pokemon/scovillain/icon.png b/graphics/pokemon/scovillain/icon.png index f346a1cb4..f0763b346 100644 Binary files a/graphics/pokemon/scovillain/icon.png and b/graphics/pokemon/scovillain/icon.png differ diff --git a/graphics/pokemon/scream_tail/back.png b/graphics/pokemon/scream_tail/back.png index a0607a0e1..44d606d13 100644 Binary files a/graphics/pokemon/scream_tail/back.png and b/graphics/pokemon/scream_tail/back.png differ diff --git a/graphics/pokemon/scream_tail/front.png b/graphics/pokemon/scream_tail/front.png index 2d320fd0d..cfe409797 100644 Binary files a/graphics/pokemon/scream_tail/front.png and b/graphics/pokemon/scream_tail/front.png differ diff --git a/graphics/pokemon/scream_tail/icon.png b/graphics/pokemon/scream_tail/icon.png index 09ca4083e..13669394a 100644 Binary files a/graphics/pokemon/scream_tail/icon.png and b/graphics/pokemon/scream_tail/icon.png differ diff --git a/graphics/pokemon/scream_tail/normal.pal b/graphics/pokemon/scream_tail/normal.pal index bedc2d2ab..90898fc40 100644 --- a/graphics/pokemon/scream_tail/normal.pal +++ b/graphics/pokemon/scream_tail/normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -153 211 165 -108 45 45 -0 0 0 -246 144 164 -251 188 201 -173 92 108 -136 64 64 -238 95 124 -186 81 102 -48 34 34 -255 121 163 -255 255 255 -200 184 248 -140 117 33 -203 174 40 -255 220 50 +15 +154 212 167 +124 76 91 +244 205 215 +201 156 176 +121 32 53 +250 168 184 +255 127 150 +8 8 8 +189 86 107 +106 81 98 +253 253 253 +227 181 50 +201 134 21 +239 209 98 +207 201 227 diff --git a/graphics/pokemon/scream_tail/shiny.pal b/graphics/pokemon/scream_tail/shiny.pal index 21e95217d..ef0e809be 100644 --- a/graphics/pokemon/scream_tail/shiny.pal +++ b/graphics/pokemon/scream_tail/shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -153 211 165 -105 45 108 -0 0 0 -229 148 224 -246 203 246 -176 83 153 -136 64 132 -211 74 189 -158 78 154 -48 34 34 -255 121 163 -255 255 255 -200 184 248 -149 52 52 -202 67 95 -237 94 83 +15 +154 212 167 +136 113 155 +244 225 251 +186 159 201 +101 54 129 +250 168 184 +227 121 230 +8 8 8 +169 92 191 +106 81 98 +253 253 253 +240 114 93 +203 66 55 +239 209 98 +207 201 227 diff --git a/graphics/pokemon/shroodle/icon.png b/graphics/pokemon/shroodle/icon.png index 1e7a9430d..0ea3daa36 100644 Binary files a/graphics/pokemon/shroodle/icon.png and b/graphics/pokemon/shroodle/icon.png differ diff --git a/graphics/pokemon/sinistcha/icon.png b/graphics/pokemon/sinistcha/icon.png index 74fc0b264..07bb624d1 100644 Binary files a/graphics/pokemon/sinistcha/icon.png and b/graphics/pokemon/sinistcha/icon.png differ diff --git a/graphics/pokemon/skeledirge/back.png b/graphics/pokemon/skeledirge/back.png index 6471ffe6c..959ada261 100644 Binary files a/graphics/pokemon/skeledirge/back.png and b/graphics/pokemon/skeledirge/back.png differ diff --git a/graphics/pokemon/skeledirge/front.png b/graphics/pokemon/skeledirge/front.png index cf238da17..e2448c8fd 100644 Binary files a/graphics/pokemon/skeledirge/front.png and b/graphics/pokemon/skeledirge/front.png differ diff --git a/graphics/pokemon/skeledirge/icon.png b/graphics/pokemon/skeledirge/icon.png index 901aab95d..6fb9ba2c4 100644 Binary files a/graphics/pokemon/skeledirge/icon.png and b/graphics/pokemon/skeledirge/icon.png differ diff --git a/graphics/pokemon/skeledirge/normal.pal b/graphics/pokemon/skeledirge/normal.pal index fbb60828f..c00aa1e7c 100644 --- a/graphics/pokemon/skeledirge/normal.pal +++ b/graphics/pokemon/skeledirge/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -132 121 129 -255 70 0 +154 212 167 +129 121 129 +241 70 0 248 248 240 -255 177 0 -215 193 202 -254 233 0 -255 129 0 +248 129 0 +209 193 201 +239 224 0 +239 171 0 +8 8 8 +186 35 26 +104 35 26 +248 44 35 +162 26 201 53 53 53 -122 7 63 -214 35 26 -255 44 35 -0 0 0 -187 26 205 -26 26 26 79 79 79 +26 26 26 diff --git a/graphics/pokemon/skeledirge/shiny.pal b/graphics/pokemon/skeledirge/shiny.pal index 4354f676d..26f0abf2e 100644 --- a/graphics/pokemon/skeledirge/shiny.pal +++ b/graphics/pokemon/skeledirge/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -132 121 129 -255 70 0 -248 248 240 -255 177 0 -215 193 202 -254 233 0 -255 129 0 +154 212 167 +132 118 83 +241 70 0 +238 240 187 +248 129 0 +184 181 116 +239 224 0 +239 171 0 +8 8 8 +175 17 112 +104 35 26 +219 29 142 +162 26 201 53 53 53 -122 7 63 -186 44 106 -247 87 139 -0 0 0 -187 26 205 -26 26 26 79 79 79 +26 26 26 diff --git a/graphics/pokemon/sliggoo/hisuian/icon.png b/graphics/pokemon/sliggoo/hisuian/icon.png index c66baae5a..c2cdfc0bc 100644 Binary files a/graphics/pokemon/sliggoo/hisuian/icon.png and b/graphics/pokemon/sliggoo/hisuian/icon.png differ diff --git a/graphics/pokemon/slither_wing/back.png b/graphics/pokemon/slither_wing/back.png index cfa4c99d7..5d829a2a4 100644 Binary files a/graphics/pokemon/slither_wing/back.png and b/graphics/pokemon/slither_wing/back.png differ diff --git a/graphics/pokemon/slither_wing/front.png b/graphics/pokemon/slither_wing/front.png index d3c1e6596..aa7ecd4a7 100644 Binary files a/graphics/pokemon/slither_wing/front.png and b/graphics/pokemon/slither_wing/front.png differ diff --git a/graphics/pokemon/slither_wing/icon.png b/graphics/pokemon/slither_wing/icon.png index e969280a5..5eccb7f4f 100644 Binary files a/graphics/pokemon/slither_wing/icon.png and b/graphics/pokemon/slither_wing/icon.png differ diff --git a/graphics/pokemon/slither_wing/normal.pal b/graphics/pokemon/slither_wing/normal.pal index a083030d3..360df3a36 100644 --- a/graphics/pokemon/slither_wing/normal.pal +++ b/graphics/pokemon/slither_wing/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -156 222 24 -172 170 172 -172 52 49 -49 157 139 -49 56 74 -246 246 246 -238 210 98 -213 255 115 -123 32 0 -222 161 57 -24 24 32 -246 64 49 -65 80 115 -230 52 41 -255 48 32 +154 212 167 +120 29 13 +210 159 0 +255 226 6 +205 237 126 +8 8 8 +186 48 26 +247 80 65 +141 133 133 +248 243 243 +202 187 187 +52 52 104 +70 78 180 +255 89 97 +107 212 197 +77 138 117 diff --git a/graphics/pokemon/slither_wing/shiny.pal b/graphics/pokemon/slither_wing/shiny.pal index 2cf5898f9..bdb223626 100644 --- a/graphics/pokemon/slither_wing/shiny.pal +++ b/graphics/pokemon/slither_wing/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -255 49 33 -172 170 172 -191 148 19 -49 157 139 -49 56 74 -246 246 246 -255 229 113 -255 96 84 -153 119 15 -236 200 73 -24 24 32 -217 171 33 -65 80 115 -230 52 41 -255 48 32 +154 212 167 +137 95 33 +210 184 121 +249 235 153 +240 111 76 +8 8 8 +206 156 34 +255 206 82 +141 133 133 +248 243 243 +202 187 187 +52 52 104 +70 78 180 +255 89 97 +193 117 204 +131 66 154 diff --git a/graphics/pokemon/smoliv/icon.png b/graphics/pokemon/smoliv/icon.png index 53b8ffc94..dfddec317 100644 Binary files a/graphics/pokemon/smoliv/icon.png and b/graphics/pokemon/smoliv/icon.png differ diff --git a/graphics/pokemon/sneasel/hisuian/icon.png b/graphics/pokemon/sneasel/hisuian/icon.png index bd9cae88b..f2646a7ad 100644 Binary files a/graphics/pokemon/sneasel/hisuian/icon.png and b/graphics/pokemon/sneasel/hisuian/icon.png differ diff --git a/graphics/pokemon/sneasler/icon.png b/graphics/pokemon/sneasler/icon.png index 4238b0e6a..d3612a640 100644 Binary files a/graphics/pokemon/sneasler/icon.png and b/graphics/pokemon/sneasler/icon.png differ diff --git a/graphics/pokemon/spidops/icon.png b/graphics/pokemon/spidops/icon.png index c35aa36c6..cdb680571 100644 Binary files a/graphics/pokemon/spidops/icon.png and b/graphics/pokemon/spidops/icon.png differ diff --git a/graphics/pokemon/sprigatito/icon.png b/graphics/pokemon/sprigatito/icon.png index 114fcff28..22fc9125d 100644 Binary files a/graphics/pokemon/sprigatito/icon.png and b/graphics/pokemon/sprigatito/icon.png differ diff --git a/graphics/pokemon/squawkabilly/blue_plumage/icon.png b/graphics/pokemon/squawkabilly/blue_plumage/icon.png index 4ad732211..3226b3acb 100644 Binary files a/graphics/pokemon/squawkabilly/blue_plumage/icon.png and b/graphics/pokemon/squawkabilly/blue_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/green_plumage/icon.png b/graphics/pokemon/squawkabilly/green_plumage/icon.png deleted file mode 100644 index 540b7521a..000000000 Binary files a/graphics/pokemon/squawkabilly/green_plumage/icon.png and /dev/null differ diff --git a/graphics/pokemon/squawkabilly/icon.png b/graphics/pokemon/squawkabilly/icon.png new file mode 100644 index 000000000..2abbffb28 Binary files /dev/null and b/graphics/pokemon/squawkabilly/icon.png differ diff --git a/graphics/pokemon/squawkabilly/green_plumage/normal.pal b/graphics/pokemon/squawkabilly/normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/green_plumage/normal.pal rename to graphics/pokemon/squawkabilly/normal.pal diff --git a/graphics/pokemon/squawkabilly/green_plumage/shiny.pal b/graphics/pokemon/squawkabilly/shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/green_plumage/shiny.pal rename to graphics/pokemon/squawkabilly/shiny.pal diff --git a/graphics/pokemon/squawkabilly/white_plumage/icon.png b/graphics/pokemon/squawkabilly/white_plumage/icon.png index a784c6cdd..ecdabe363 100644 Binary files a/graphics/pokemon/squawkabilly/white_plumage/icon.png and b/graphics/pokemon/squawkabilly/white_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/icon.png b/graphics/pokemon/squawkabilly/yellow_plumage/icon.png index a042d981d..085b3e0e2 100644 Binary files a/graphics/pokemon/squawkabilly/yellow_plumage/icon.png and b/graphics/pokemon/squawkabilly/yellow_plumage/icon.png differ diff --git a/graphics/pokemon/tadbulb/icon.png b/graphics/pokemon/tadbulb/icon.png index 0341a387f..d0de9612e 100644 Binary files a/graphics/pokemon/tadbulb/icon.png and b/graphics/pokemon/tadbulb/icon.png differ diff --git a/graphics/pokemon/tandemaus/icon.png b/graphics/pokemon/tandemaus/icon.png index 8effa87c5..5e8443f8d 100644 Binary files a/graphics/pokemon/tandemaus/icon.png and b/graphics/pokemon/tandemaus/icon.png differ diff --git a/graphics/pokemon/tarountula/icon.png b/graphics/pokemon/tarountula/icon.png index d4802eb0e..67f4423f9 100644 Binary files a/graphics/pokemon/tarountula/icon.png and b/graphics/pokemon/tarountula/icon.png differ diff --git a/graphics/pokemon/tatsugiri/curly/back.png b/graphics/pokemon/tatsugiri/back.png similarity index 100% rename from graphics/pokemon/tatsugiri/curly/back.png rename to graphics/pokemon/tatsugiri/back.png diff --git a/graphics/pokemon/tatsugiri/curly/icon.png b/graphics/pokemon/tatsugiri/curly/icon.png deleted file mode 100644 index 98fe8aa56..000000000 Binary files a/graphics/pokemon/tatsugiri/curly/icon.png and /dev/null differ diff --git a/graphics/pokemon/tatsugiri/droopy/icon.png b/graphics/pokemon/tatsugiri/droopy/icon.png index 48e8c01fd..041a9a446 100644 Binary files a/graphics/pokemon/tatsugiri/droopy/icon.png and b/graphics/pokemon/tatsugiri/droopy/icon.png differ diff --git a/graphics/pokemon/tatsugiri/curly/front.png b/graphics/pokemon/tatsugiri/front.png similarity index 100% rename from graphics/pokemon/tatsugiri/curly/front.png rename to graphics/pokemon/tatsugiri/front.png diff --git a/graphics/pokemon/tatsugiri/icon.png b/graphics/pokemon/tatsugiri/icon.png new file mode 100644 index 000000000..0db952cbd Binary files /dev/null and b/graphics/pokemon/tatsugiri/icon.png differ diff --git a/graphics/pokemon/tatsugiri/curly/normal.pal b/graphics/pokemon/tatsugiri/normal.pal similarity index 100% rename from graphics/pokemon/tatsugiri/curly/normal.pal rename to graphics/pokemon/tatsugiri/normal.pal diff --git a/graphics/pokemon/tatsugiri/curly/shiny.pal b/graphics/pokemon/tatsugiri/shiny.pal similarity index 100% rename from graphics/pokemon/tatsugiri/curly/shiny.pal rename to graphics/pokemon/tatsugiri/shiny.pal diff --git a/graphics/pokemon/tatsugiri/stretchy/icon.png b/graphics/pokemon/tatsugiri/stretchy/icon.png index 1634ec317..9403a331e 100644 Binary files a/graphics/pokemon/tatsugiri/stretchy/icon.png and b/graphics/pokemon/tatsugiri/stretchy/icon.png differ diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/icon.png b/graphics/pokemon/tauros/paldean_aqua_breed/icon.png index a0421d7dd..d1669390e 100644 Binary files a/graphics/pokemon/tauros/paldean_aqua_breed/icon.png and b/graphics/pokemon/tauros/paldean_aqua_breed/icon.png differ diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/icon.png b/graphics/pokemon/tauros/paldean_blaze_breed/icon.png index 25ec7e046..559c3e4ac 100644 Binary files a/graphics/pokemon/tauros/paldean_blaze_breed/icon.png and b/graphics/pokemon/tauros/paldean_blaze_breed/icon.png differ diff --git a/graphics/pokemon/tauros/paldean_combat_breed/icon.png b/graphics/pokemon/tauros/paldean_combat_breed/icon.png index daa2eb788..7740356c5 100644 Binary files a/graphics/pokemon/tauros/paldean_combat_breed/icon.png and b/graphics/pokemon/tauros/paldean_combat_breed/icon.png differ diff --git a/graphics/pokemon/terapagos/icon.png b/graphics/pokemon/terapagos/icon.png new file mode 100644 index 000000000..037636945 Binary files /dev/null and b/graphics/pokemon/terapagos/icon.png differ diff --git a/graphics/pokemon/terapagos/stellar/icon.png b/graphics/pokemon/terapagos/stellar/icon.png new file mode 100644 index 000000000..f11525da0 Binary files /dev/null and b/graphics/pokemon/terapagos/stellar/icon.png differ diff --git a/graphics/pokemon/terapagos/terastal/icon.png b/graphics/pokemon/terapagos/terastal/icon.png new file mode 100644 index 000000000..0f15ff3bb Binary files /dev/null and b/graphics/pokemon/terapagos/terastal/icon.png differ diff --git a/graphics/pokemon/ting_lu/icon.png b/graphics/pokemon/ting_lu/icon.png index 0b1f975f9..a4cbc121a 100644 Binary files a/graphics/pokemon/ting_lu/icon.png and b/graphics/pokemon/ting_lu/icon.png differ diff --git a/graphics/pokemon/tinkatink/back.png b/graphics/pokemon/tinkatink/back.png index 63fced448..acdc03246 100644 Binary files a/graphics/pokemon/tinkatink/back.png and b/graphics/pokemon/tinkatink/back.png differ diff --git a/graphics/pokemon/tinkatink/front.png b/graphics/pokemon/tinkatink/front.png index f263a31f2..2be3c6d29 100644 Binary files a/graphics/pokemon/tinkatink/front.png and b/graphics/pokemon/tinkatink/front.png differ diff --git a/graphics/pokemon/tinkatink/icon.png b/graphics/pokemon/tinkatink/icon.png index fc7300cb0..0eaec6b14 100644 Binary files a/graphics/pokemon/tinkatink/icon.png and b/graphics/pokemon/tinkatink/icon.png differ diff --git a/graphics/pokemon/tinkatink/normal.pal b/graphics/pokemon/tinkatink/normal.pal index fb5977571..6256a0042 100644 --- a/graphics/pokemon/tinkatink/normal.pal +++ b/graphics/pokemon/tinkatink/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -246 101 172 -246 141 197 -189 206 230 -189 72 115 -8 12 8 -189 48 139 -106 93 164 -189 161 164 -115 141 172 -74 56 139 -246 226 238 -164 182 205 -131 40 82 -57 80 123 -255 255 255 +154 212 167 +118 67 75 +210 158 158 +255 230 226 +8 8 8 +223 96 150 +70 50 134 +165 62 121 +120 107 163 +186 169 223 +37 32 81 +102 26 84 +252 151 194 +122 84 182 +252 252 252 +119 126 197 diff --git a/graphics/pokemon/tinkatink/shiny.pal b/graphics/pokemon/tinkatink/shiny.pal index aa21dca4e..5b879230c 100644 --- a/graphics/pokemon/tinkatink/shiny.pal +++ b/graphics/pokemon/tinkatink/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -246 101 172 -246 141 197 -203 131 108 -189 72 115 -8 12 8 -189 48 139 -196 173 161 -189 161 164 -112 73 54 -148 124 112 -246 226 238 -156 105 79 -131 40 82 -51 46 43 -255 255 255 +154 212 167 +118 67 75 +210 158 158 +255 230 226 +8 8 8 +223 96 150 +92 42 44 +165 62 121 +165 96 81 +223 152 124 +56 18 25 +102 26 84 +252 151 194 +131 70 66 +252 252 252 +119 126 197 diff --git a/graphics/pokemon/tinkaton/back.png b/graphics/pokemon/tinkaton/back.png index d876ebc79..1a08f502f 100644 Binary files a/graphics/pokemon/tinkaton/back.png and b/graphics/pokemon/tinkaton/back.png differ diff --git a/graphics/pokemon/tinkaton/front.png b/graphics/pokemon/tinkaton/front.png index eb5ce6e8a..f197ddc34 100644 Binary files a/graphics/pokemon/tinkaton/front.png and b/graphics/pokemon/tinkaton/front.png differ diff --git a/graphics/pokemon/tinkaton/icon.png b/graphics/pokemon/tinkaton/icon.png index 72ab26b86..8cd40c4d5 100644 Binary files a/graphics/pokemon/tinkaton/icon.png and b/graphics/pokemon/tinkaton/icon.png differ diff --git a/graphics/pokemon/tinkaton/normal.pal b/graphics/pokemon/tinkaton/normal.pal index 1c44fa8dc..d6d3151c4 100644 --- a/graphics/pokemon/tinkaton/normal.pal +++ b/graphics/pokemon/tinkaton/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -49 43 51 -236 208 208 -170 132 143 -15 15 15 -100 79 155 -137 113 148 -173 161 197 -74 54 112 -82 46 69 -233 145 181 -236 85 140 -252 252 252 -88 94 163 -167 65 103 -174 89 125 +154 212 167 +118 67 75 +255 230 226 +210 158 158 +8 8 8 +255 255 255 +70 50 134 +122 84 182 +37 32 81 +186 169 223 +120 107 163 +165 62 121 +252 151 194 +102 26 84 +223 96 150 +119 126 197 diff --git a/graphics/pokemon/tinkaton/shiny.pal b/graphics/pokemon/tinkaton/shiny.pal index dd18420c0..a1c1fab15 100644 --- a/graphics/pokemon/tinkaton/shiny.pal +++ b/graphics/pokemon/tinkaton/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -63 35 25 -236 208 208 -170 132 143 -15 15 15 -106 52 67 -139 87 69 -203 131 108 -83 40 53 -82 46 69 -233 145 181 -236 85 140 -252 252 252 -88 94 163 -167 65 103 -174 89 125 +154 212 167 +118 67 75 +255 230 226 +210 158 158 +8 8 8 +255 255 255 +92 42 44 +131 70 66 +56 18 25 +223 152 124 +165 96 81 +165 62 121 +252 151 194 +102 26 84 +223 96 150 +119 126 197 diff --git a/graphics/pokemon/tinkatuff/back.png b/graphics/pokemon/tinkatuff/back.png index 5a5cdac31..cc789e6c4 100644 Binary files a/graphics/pokemon/tinkatuff/back.png and b/graphics/pokemon/tinkatuff/back.png differ diff --git a/graphics/pokemon/tinkatuff/front.png b/graphics/pokemon/tinkatuff/front.png index 8b75e709b..54459b2c1 100644 Binary files a/graphics/pokemon/tinkatuff/front.png and b/graphics/pokemon/tinkatuff/front.png differ diff --git a/graphics/pokemon/tinkatuff/icon.png b/graphics/pokemon/tinkatuff/icon.png index 7ab30334f..345da1911 100644 Binary files a/graphics/pokemon/tinkatuff/icon.png and b/graphics/pokemon/tinkatuff/icon.png differ diff --git a/graphics/pokemon/tinkatuff/normal.pal b/graphics/pokemon/tinkatuff/normal.pal index 0f90f999f..324d6798e 100644 --- a/graphics/pokemon/tinkatuff/normal.pal +++ b/graphics/pokemon/tinkatuff/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -32 208 160 -80 40 64 -232 208 208 -168 128 136 +154 212 167 +118 67 75 +255 230 226 +210 158 158 8 8 8 -232 144 176 -232 80 136 -168 88 120 -160 64 96 -248 248 248 -48 40 48 -88 88 160 -168 160 192 -136 112 144 -96 72 152 -72 48 112 +37 32 81 +70 50 134 +186 169 223 +120 107 163 +252 151 194 +102 26 84 +223 96 150 +122 84 182 +252 252 252 +119 126 197 +165 62 121 diff --git a/graphics/pokemon/tinkatuff/shiny.pal b/graphics/pokemon/tinkatuff/shiny.pal index edea9dd34..639de886c 100644 --- a/graphics/pokemon/tinkatuff/shiny.pal +++ b/graphics/pokemon/tinkatuff/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -32 208 160 -80 40 64 -232 208 208 -168 128 136 +154 212 167 +118 67 75 +255 230 226 +210 158 158 8 8 8 -232 144 176 -232 80 136 -168 88 120 -160 64 96 -248 248 248 -48 40 48 -88 88 160 -208 152 120 -152 80 48 -152 56 88 -104 24 24 +56 18 25 +92 42 44 +223 152 124 +165 96 81 +252 151 194 +102 26 84 +223 96 150 +131 70 66 +252 252 252 +119 126 197 +165 62 121 diff --git a/graphics/pokemon/toedscool/icon.png b/graphics/pokemon/toedscool/icon.png index 91edeb247..6021e614d 100644 Binary files a/graphics/pokemon/toedscool/icon.png and b/graphics/pokemon/toedscool/icon.png differ diff --git a/graphics/pokemon/toedscruel/icon.png b/graphics/pokemon/toedscruel/icon.png index fe3f98f9f..6095eae57 100644 Binary files a/graphics/pokemon/toedscruel/icon.png and b/graphics/pokemon/toedscruel/icon.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/icon.png b/graphics/pokemon/typhlosion/hisuian/icon.png index c3e047496..58f2f1119 100644 Binary files a/graphics/pokemon/typhlosion/hisuian/icon.png and b/graphics/pokemon/typhlosion/hisuian/icon.png differ diff --git a/graphics/pokemon/ursaluna/bloodmoon/icon.png b/graphics/pokemon/ursaluna/bloodmoon/icon.png new file mode 100644 index 000000000..e5fbf8055 Binary files /dev/null and b/graphics/pokemon/ursaluna/bloodmoon/icon.png differ diff --git a/graphics/pokemon/ursaluna/icon.png b/graphics/pokemon/ursaluna/icon.png index 8a8470407..d56041d55 100644 Binary files a/graphics/pokemon/ursaluna/icon.png and b/graphics/pokemon/ursaluna/icon.png differ diff --git a/graphics/pokemon/varoom/icon.png b/graphics/pokemon/varoom/icon.png index 7debadffd..e34239529 100644 Binary files a/graphics/pokemon/varoom/icon.png and b/graphics/pokemon/varoom/icon.png differ diff --git a/graphics/pokemon/veluza/icon.png b/graphics/pokemon/veluza/icon.png index 6d0605166..6282d9c37 100644 Binary files a/graphics/pokemon/veluza/icon.png and b/graphics/pokemon/veluza/icon.png differ diff --git a/graphics/pokemon/voltorb/hisuian/icon.png b/graphics/pokemon/voltorb/hisuian/icon.png index 2a35e4ec3..c3381d7fd 100644 Binary files a/graphics/pokemon/voltorb/hisuian/icon.png and b/graphics/pokemon/voltorb/hisuian/icon.png differ diff --git a/graphics/pokemon/walking_wake/icon.png b/graphics/pokemon/walking_wake/icon.png index 9260531ec..a3a37af7f 100644 Binary files a/graphics/pokemon/walking_wake/icon.png and b/graphics/pokemon/walking_wake/icon.png differ diff --git a/graphics/pokemon/wattrel/icon.png b/graphics/pokemon/wattrel/icon.png index a0a8bc9d4..33bf137c9 100644 Binary files a/graphics/pokemon/wattrel/icon.png and b/graphics/pokemon/wattrel/icon.png differ diff --git a/graphics/pokemon/wiglett/icon.png b/graphics/pokemon/wiglett/icon.png index 668309c68..4c8e951fd 100644 Binary files a/graphics/pokemon/wiglett/icon.png and b/graphics/pokemon/wiglett/icon.png differ diff --git a/graphics/pokemon/wo_chien/icon.png b/graphics/pokemon/wo_chien/icon.png index 22402d15c..3772daf86 100644 Binary files a/graphics/pokemon/wo_chien/icon.png and b/graphics/pokemon/wo_chien/icon.png differ diff --git a/graphics/pokemon/wooper/wooper_paldean/icon.png b/graphics/pokemon/wooper/wooper_paldean/icon.png new file mode 100644 index 000000000..ac1c48778 Binary files /dev/null and b/graphics/pokemon/wooper/wooper_paldean/icon.png differ diff --git a/graphics/pokemon/wugtrio/icon.png b/graphics/pokemon/wugtrio/icon.png index 1b6704478..f35b1d045 100644 Binary files a/graphics/pokemon/wugtrio/icon.png and b/graphics/pokemon/wugtrio/icon.png differ diff --git a/graphics/pokemon/wyrdeer/icon.png b/graphics/pokemon/wyrdeer/icon.png index 905dfe083..7786e2b3a 100644 Binary files a/graphics/pokemon/wyrdeer/icon.png and b/graphics/pokemon/wyrdeer/icon.png differ diff --git a/graphics/pokemon/zoroark/hisuian/icon.png b/graphics/pokemon/zoroark/hisuian/icon.png index 6c4f6faf1..a9610d1fd 100644 Binary files a/graphics/pokemon/zoroark/hisuian/icon.png and b/graphics/pokemon/zoroark/hisuian/icon.png differ diff --git a/graphics/pokemon/zorua/hisuian/icon.png b/graphics/pokemon/zorua/hisuian/icon.png index 17f9229a2..79faea9a1 100644 Binary files a/graphics/pokemon/zorua/hisuian/icon.png and b/graphics/pokemon/zorua/hisuian/icon.png differ diff --git a/include/config/pokemon.h b/include/config/pokemon.h index e833399ea..810640d6b 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -7,6 +7,16 @@ #define P_UPDATED_ABILITIES GEN_LATEST // Since Gen 6, certain Pokémon have their abilities changed. #define P_UPDATED_EGG_GROUPS GEN_LATEST // Since Gen 8, certain Pokémon have gained new egg groups. #define P_UPDATED_FRIENDSHIP GEN_LATEST // Since Gen 8, the base friendship of certain Pokémon was changed. +#define P_UPDATED_EVS GEN_LATEST // Some Pokémon have received EV updates after their introduction. +#define P_UPDATED_EXP_YIELDS GEN_LATEST // Since Gen 5, some Pokémon have received base Experience changes. + +// Learnsets +#define P_LVL_UP_LEARNSETS GEN_LATEST // Choose which set of Level Up Learnsets to use. + // For generations that hadn't introduced a species yet, we use their first appearence (eg. Chikorita's Gen2 data if the config is set to GEN_1). + // For generations that don't include a previously introduced species, we use their last apperance (eg. Snivy's Gen7 data if the config is set to GEN_8). + // GEN_1/2/3/4/5/6/7: Yellow, Crystal, RSE, HGSS, B2W2, ORAS, USUM learnsets respectively. + // GEN_8: Use the following priority: BDSP for Gen1-4 Pokémon, then LA for species introduced in that game, then SwSh for species present in those games. Otherwise, use GEN_7. + // GEN_9: SV For species present in those games. Otherwise use GEN_8. // Evolution settings #define P_FRIENDSHIP_EVO_THRESHOLD GEN_LATEST // Since Gen 8, Pokémon that evolve by friendship evolve at or above 160 friendship instead of 220. @@ -29,8 +39,14 @@ // Other settings #define P_CUSTOM_GENDER_DIFF_ICONS TRUE // If TRUE, will give more Pokémon custom icons for their female forms, i.e. Hippopotas and Hippowdon +#define P_FOOTPRINTS TRUE // If TRUE, Pokémon will have footprints (as was the case up to Gen 5 and in BDSP). Disabling this saves some ROM space. #define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. #define P_EV_CAP GEN_LATEST // Since Gen 6, the max EVs per stat is 252 instead of 255. +#define P_SHOW_TERA_TYPE GEN_8 // Since Gen 9, the Tera Type is shown on the summary screen. +#define P_TM_LITERACY GEN_LATEST // Since Gen 6, TM illiterate Pokémon can learn TMs that teach moves that are in their level-up learnsets. + +// Learnset helper toggles +#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors. // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. diff --git a/include/config/species_enabled.h b/include/config/species_enabled.h index 8004abc3b..23bb6d9d5 100644 --- a/include/config/species_enabled.h +++ b/include/config/species_enabled.h @@ -1,6 +1,9 @@ #ifndef GUARD_CONFIG_SPECIES_ENABLED_H #define GUARD_CONFIG_SPECIES_ENABLED_H +// WARNING: For some reason, using 1/0 instead of TRUE/FALSE causes cry IDs to be shifted. +// Please use TRUE/FALSE when using the family toggles. + // Modifying the latest generation WILL change the saveblock due to Dex flags and will require a new save file. // Generations of Pokémon are defined by the first member introduced, // so Pikachu depends on the Gen 1 setting despite Pichu being the lowest member of the evolution tree. @@ -594,5 +597,11 @@ #define P_FAMILY_MUNKIDORI P_GEN_9_POKEMON #define P_FAMILY_FEZANDIPITI P_GEN_9_POKEMON #define P_FAMILY_OGERPON P_GEN_9_POKEMON +#define P_FAMILY_GOUGING_FIRE P_GEN_9_POKEMON +#define P_FAMILY_RAGING_BOLT P_GEN_9_POKEMON +#define P_FAMILY_IRON_BOULDER P_GEN_9_POKEMON +#define P_FAMILY_IRON_CROWN P_GEN_9_POKEMON +#define P_FAMILY_TERAPAGOS P_GEN_9_POKEMON +#define P_FAMILY_PECHARUNT P_GEN_9_POKEMON #endif // GUARD_CONFIG_SPECIES_ENABLED_H diff --git a/include/constants/cries.h b/include/constants/cries.h index ddeee56d4..3213f62d3 100644 --- a/include/constants/cries.h +++ b/include/constants/cries.h @@ -626,9 +626,9 @@ enum { #if P_FAMILY_TEDDIURSA CRY_TEDDIURSA, CRY_URSARING, -#if P_GEN_9_CROSS_EVOS +#if P_GEN_8_CROSS_EVOS CRY_URSALUNA, -#endif //P_GEN_9_CROSS_EVOS +#endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_TEDDIURSA #if P_FAMILY_SLUGMA CRY_SLUGMA, @@ -2025,6 +2025,7 @@ enum { CRY_APPLETUN, #if P_GEN_9_CROSS_EVOS CRY_DIPPLIN, + CRY_HYDRAPPLE, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -2112,6 +2113,9 @@ enum { #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON CRY_DURALUDON, +#if P_GEN_9_CROSS_EVOS + CRY_ARCHALUDON, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY CRY_DREEPY, @@ -2404,6 +2408,24 @@ enum { #if P_FAMILY_OGERPON CRY_OGERPON, #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + CRY_GOUGING_FIRE, +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT + CRY_RAGING_BOLT, +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER + CRY_IRON_BOULDER, +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN + CRY_IRON_CROWN, +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS + CRY_TERAPAGOS, +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT + CRY_PECHARUNT, +#endif //P_FAMILY_PECHARUNT CRY_COUNT, }; diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index ad106dd2e..d0004c254 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_POKEDEX_H #define GUARD_CONSTANTS_POKEDEX_H -// National Pokedex order. +// National Pokédex order // These constants are NOT disabled by P_GEN_X_POKEMON to keep pokedex_orders.h clean. enum { NATIONAL_DEX_NONE, @@ -1031,20 +1031,20 @@ enum { NATIONAL_DEX_MUNKIDORI, NATIONAL_DEX_FEZANDIPITI, NATIONAL_DEX_OGERPON, - NATIONAL_DEX_1018, - NATIONAL_DEX_1019, - NATIONAL_DEX_1020, - NATIONAL_DEX_1021, - NATIONAL_DEX_1022, - NATIONAL_DEX_1023, - NATIONAL_DEX_1024, - NATIONAL_DEX_1025, + NATIONAL_DEX_ARCHALUDON, + NATIONAL_DEX_HYDRAPPLE, + NATIONAL_DEX_GOUGING_FIRE, + NATIONAL_DEX_RAGING_BOLT, + NATIONAL_DEX_IRON_BOULDER, + NATIONAL_DEX_IRON_CROWN, + NATIONAL_DEX_TERAPAGOS, + NATIONAL_DEX_PECHARUNT, }; #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_GEN_9_POKEMON == TRUE - #define NATIONAL_DEX_COUNT NATIONAL_DEX_1025 + #define NATIONAL_DEX_COUNT NATIONAL_DEX_PECHARUNT #elif P_GEN_8_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #elif P_GEN_7_POKEMON == TRUE @@ -1572,4 +1572,14 @@ enum { #define HOENN_DEX_COUNT (HOENN_DEX_DEOXYS + 1) +#define DECAGRAMS_IN_POUND 4536 +#define CM_PER_INCH 2.54 +#define CM_PER_INCH_FACTOR (CM_PER_INCH * 100) +#define INCHES_IN_FOOT 12 +#define INCHES_IN_ONE_AND_HALF_FOOT (INCHES_IN_FOOT * 1.5) +#define INCHES_IN_FOOT_FACTOR (INCHES_IN_FOOT * 10) + +#define WEIGHT_HEIGHT_STR_LEN 16 +#define WEIGHT_HEIGHT_STR_MEM (WEIGHT_HEIGHT_STR_LEN * sizeof(u8)) + #endif // GUARD_CONSTANTS_POKEDEX_H diff --git a/include/pokemon.h b/include/pokemon.h index f27d28611..e3a549934 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -417,9 +417,9 @@ struct SpeciesInfo /*0x8C*/ /* 0x64 */ const u32 *shinyPaletteFemale; /* 0x68 */ const u8 *iconSprite; /* 0x6C */ const u8 *iconSpriteFemale; -// #if P_FOOTPRINTS +#if P_FOOTPRINTS /* 0x70 */ const u8 *footprint; -// #endif +#endif // All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame the sprite's non-transparent pixels actually are. /* 0x74 */ u8 frontPicSize; // The dimensions of this drawn pixel area. /* 0x74 */ u8 frontPicSizeFemale; // The dimensions of this drawn pixel area. @@ -809,8 +809,7 @@ void TryToSetBattleFormChangeMoves(struct Pokemon *mon, u16 method); bool8 IsMonPastEvolutionLevel(struct Pokemon *mon); bool32 IsPersonalityFemale(u16 species, u32 personality); bool32 TryFormChange(u32 monId, u32 side, u16 method); - - +u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex); bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battleId); u16 SanitizeSpeciesId(u16 species); bool32 IsSpeciesEnabled(u16 species); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 68dc95295..54dfc4089 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -3,7 +3,9 @@ const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/quest const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/normal.gbapal.lz"); const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/shiny.gbapal.lz"); const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_FAMILY_BULBASAUR const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); @@ -11,21 +13,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/anim_frontf.4bpp.lz"); const u32 gMonBackPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/backf.4bpp.lz"); @@ -53,21 +61,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/front.4bpp.lz"); @@ -98,21 +112,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/front.4bpp.lz"); @@ -137,21 +157,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/backf.4bpp.lz"); @@ -171,21 +197,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/front.4bpp.lz"); @@ -202,21 +234,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/front.4bpp.lz"); @@ -233,7 +271,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/backf.4bpp.lz"); @@ -243,7 +283,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/backf.4bpp.lz"); @@ -269,14 +311,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPEAROW #if P_FAMILY_EKANS @@ -285,14 +331,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_EKANS #if P_FAMILY_PIKACHU @@ -302,7 +352,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/anim_front.4bpp.lz"); const u32 gMonPalette_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/normal.gbapal.lz"); @@ -316,7 +368,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/backf.4bpp.lz"); @@ -420,12 +474,19 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u8 gMonIcon_PikachuGigantamax[] = INCBIN_U8("graphics/pokemon/pikachu/gigantamax/icon.4bpp"); #endif //P_GIGANTAMAX_FORMS + const u8 gMonIcon_PikachuPartner[] = INCBIN_U8("graphics/pokemon/pikachu/partner/icon.4bpp"); + #if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_PikachuPartnerF[] = INCBIN_U8("graphics/pokemon/pikachu/partner/iconf.4bpp"); + #endif + const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RaichuF[] = INCBIN_U32("graphics/pokemon/raichu/anim_frontf.4bpp.lz"); @@ -444,14 +505,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/front.4bpp.lz"); @@ -474,42 +539,54 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NIDORAN #if P_FAMILY_CLEFAIRY @@ -519,7 +596,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); @@ -527,14 +606,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CLEFAIRY #if P_FAMILY_VULPIX @@ -543,14 +626,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/front.4bpp.lz"); @@ -574,7 +661,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); @@ -582,14 +671,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_JIGGLYPUFF #if P_FAMILY_ZUBAT @@ -598,7 +691,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/backf.4bpp.lz"); @@ -608,7 +703,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/backf.4bpp.lz"); @@ -619,7 +716,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ZUBAT @@ -629,14 +728,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/backf.4bpp.lz"); @@ -646,7 +749,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/anim_frontf.4bpp.lz"); const u32 gMonBackPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/backf.4bpp.lz"); @@ -657,7 +762,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ODDISH @@ -667,14 +774,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PARAS #if P_FAMILY_VENONAT @@ -683,14 +794,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VENONAT #if P_FAMILY_DIGLETT @@ -699,14 +814,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/front.4bpp.lz"); @@ -729,14 +848,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/front.4bpp.lz"); @@ -764,7 +887,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/back.4bpp.lz"); const u32 gMonShinyPalette_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/shiny.gbapal.lz"); const u8 gMonIcon_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS @@ -782,14 +907,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PSYDUCK #if P_FAMILY_MANKEY @@ -798,14 +927,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_9_CROSS_EVOS const u32 gMonFrontPic_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/front.4bpp.lz"); @@ -813,7 +946,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/back.4bpp.lz"); const u32 gMonShinyPalette_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/shiny.gbapal.lz"); const u8 gMonIcon_Annihilape[] = INCBIN_U8("graphics/pokemon/annihilape/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Annihilape[] = INCBIN_U8("graphics/pokemon/annihilape/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_MANKEY @@ -823,14 +958,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/front.4bpp.lz"); @@ -853,21 +992,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); @@ -875,7 +1020,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/backf.4bpp.lz"); @@ -888,14 +1035,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/backf.4bpp.lz"); @@ -905,7 +1056,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/backf.4bpp.lz"); @@ -925,21 +1078,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/front.4bpp.lz"); @@ -956,21 +1115,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BELLSPROUT #if P_FAMILY_TENTACOOL @@ -979,14 +1144,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TENTACOOL #if P_FAMILY_GEODUDE @@ -995,21 +1164,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/front.4bpp.lz"); @@ -1038,14 +1213,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/front.4bpp.lz"); @@ -1068,14 +1247,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); @@ -1083,7 +1266,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #if P_MEGA_EVOLUTIONS @@ -1123,14 +1308,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/anim_front.4bpp.lz"); @@ -1138,7 +1327,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/back.4bpp.lz"); const u32 gMonShinyPalette_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/shiny.gbapal.lz"); const u8 gMonIcon_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGNEMITE @@ -1148,7 +1339,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back.4bpp.lz"); const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny.gbapal.lz"); const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/front.4bpp.lz"); @@ -1162,7 +1355,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/back.4bpp.lz"); const u32 gMonShinyPalette_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/shiny.gbapal.lz"); const u8 gMonIcon_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_FARFETCHD @@ -1172,7 +1367,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/backf.4bpp.lz"); @@ -1182,7 +1379,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/backf.4bpp.lz"); @@ -1194,14 +1393,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SEEL #if P_FAMILY_GRIMER @@ -1210,14 +1413,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/front.4bpp.lz"); @@ -1240,14 +1447,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHELLDER #if P_FAMILY_GASTLY @@ -1256,21 +1467,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/front.4bpp.lz"); @@ -1295,7 +1512,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); @@ -1303,7 +1522,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/backf.4bpp.lz"); @@ -1324,14 +1545,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/backf.4bpp.lz"); @@ -1343,14 +1568,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/front.4bpp.lz"); @@ -1367,14 +1596,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/front.4bpp.lz"); @@ -1397,14 +1630,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/anim_front.4bpp.lz"); @@ -1421,14 +1658,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_ALOLAN_FORMS const u32 gMonFrontPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/front.4bpp.lz"); @@ -1446,7 +1687,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); @@ -1454,14 +1697,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); @@ -1469,7 +1716,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HITMONS @@ -1479,7 +1728,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/anim_front.4bpp.lz"); @@ -1487,7 +1738,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/back.4bpp.lz"); const u32 gMonShinyPalette_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/shiny.gbapal.lz"); const u8 gMonIcon_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_LICKITUNG @@ -1497,14 +1750,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/front.4bpp.lz"); @@ -1521,7 +1778,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/backf.4bpp.lz"); @@ -1531,7 +1790,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/backf.4bpp.lz"); @@ -1542,7 +1803,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/back.4bpp.lz"); const u32 gMonShinyPalette_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/shiny.gbapal.lz"); const u8 gMonIcon_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/backf.4bpp.lz"); @@ -1556,7 +1819,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/back.4bpp.lz"); const u32 gMonShinyPalette_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/shiny.gbapal.lz"); const u8 gMonIcon_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); @@ -1564,7 +1829,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); @@ -1572,7 +1839,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_CHANSEY @@ -1582,7 +1851,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_front.4bpp.lz"); @@ -1590,7 +1861,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/back.4bpp.lz"); const u32 gMonShinyPalette_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/shiny.gbapal.lz"); const u8 gMonIcon_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_TangrowthF[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_frontf.4bpp.lz"); #endif //P_GEN_4_CROSS_EVOS @@ -1602,7 +1875,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/front.4bpp.lz"); @@ -1619,14 +1894,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); @@ -1634,7 +1913,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HORSEA @@ -1644,7 +1925,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/backf.4bpp.lz"); @@ -1654,7 +1937,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/backf.4bpp.lz"); @@ -1666,14 +1951,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_STARYU #if P_FAMILY_MR_MIME @@ -1683,7 +1972,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/back.4bpp.lz"); const u32 gMonShinyPalette_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/shiny.gbapal.lz"); const u8 gMonIcon_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); @@ -1691,7 +1982,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); const u32 gMonShinyPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); const u8 gMonIcon_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/front.4bpp.lz"); @@ -1705,7 +1998,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/back.4bpp.lz"); const u32 gMonShinyPalette_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/shiny.gbapal.lz"); const u8 gMonIcon_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MR_MIME @@ -1715,7 +2010,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ScytherF[] = INCBIN_U32("graphics/pokemon/scyther/anim_frontf.4bpp.lz"); @@ -1725,7 +2022,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ScizorF[] = INCBIN_U32("graphics/pokemon/scizor/anim_frontf.4bpp.lz"); @@ -1744,7 +2043,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/back.4bpp.lz"); const u32 gMonShinyPalette_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/shiny.gbapal.lz"); const u8 gMonIcon_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_SCYTHER @@ -1755,7 +2056,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); @@ -1763,7 +2066,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_JYNX #if P_FAMILY_ELECTABUZZ @@ -1773,7 +2078,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); @@ -1781,7 +2088,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/anim_front.4bpp.lz"); @@ -1789,7 +2098,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/back.4bpp.lz"); const u32 gMonShinyPalette_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/shiny.gbapal.lz"); const u8 gMonIcon_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ELECTABUZZ @@ -1800,7 +2111,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); @@ -1808,7 +2121,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/anim_front.4bpp.lz"); @@ -1816,7 +2131,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/back.4bpp.lz"); const u32 gMonShinyPalette_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/shiny.gbapal.lz"); const u8 gMonIcon_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGMAR @@ -1826,7 +2143,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/front.4bpp.lz"); @@ -1843,7 +2162,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_PALDEAN_FORMS const u32 gMonFrontPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/front.4bpp.lz"); @@ -1872,7 +2193,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/backf.4bpp.lz"); @@ -1882,7 +2205,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/backf.4bpp.lz"); @@ -1902,7 +2227,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/front.4bpp.lz"); @@ -1919,7 +2246,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DITTO #if P_FAMILY_EEVEE @@ -1928,7 +2257,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/anim_frontf.4bpp.lz"); const u32 gMonBackPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/backf.4bpp.lz"); @@ -1941,26 +2272,37 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u8 gMonIcon_EeveeGigantamax[] = INCBIN_U8("graphics/pokemon/eevee/gigantamax/icon.4bpp"); #endif //P_GIGANTAMAX_FORMS + const u8 gMonIcon_EeveePartner[] = INCBIN_U8("graphics/pokemon/eevee/partner/icon.4bpp"); + #if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_EeveePartnerF[] = INCBIN_U8("graphics/pokemon/eevee/partner/iconf.4bpp"); + #endif + const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); @@ -1968,14 +2310,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_2_CROSS_EVOS #if P_GEN_4_CROSS_EVOS @@ -1984,14 +2330,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/back.4bpp.lz"); const u32 gMonShinyPalette_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/shiny.gbapal.lz"); const u8 gMonIcon_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/anim_front.4bpp.lz"); const u32 gMonPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/normal.gbapal.lz"); const u32 gMonBackPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/back.4bpp.lz"); const u32 gMonShinyPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/shiny.gbapal.lz"); const u8 gMonIcon_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #if P_GEN_6_CROSS_EVOS @@ -2000,7 +2350,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/back.4bpp.lz"); const u32 gMonShinyPalette_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/shiny.gbapal.lz"); const u8 gMonIcon_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_6_CROSS_EVOS #endif //P_FAMILY_EEVEE @@ -2010,7 +2362,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_2_CROSS_EVOS const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); @@ -2018,7 +2372,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/anim_front.4bpp.lz"); @@ -2026,7 +2382,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/back.4bpp.lz"); const u32 gMonShinyPalette_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/shiny.gbapal.lz"); const u8 gMonIcon_PorygonZ[] = INCBIN_U8("graphics/pokemon/porygon_z/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_PorygonZ[] = INCBIN_U8("graphics/pokemon/porygon_z/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_PORYGON @@ -2037,14 +2395,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_OMANYTE #if P_FAMILY_KABUTO @@ -2053,14 +2415,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KABUTO #if P_FAMILY_AERODACTYL @@ -2069,7 +2435,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/front.4bpp.lz"); @@ -2087,7 +2455,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/back.4bpp.lz"); const u32 gMonShinyPalette_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/shiny.gbapal.lz"); const u8 gMonIcon_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); @@ -2095,7 +2465,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/front.4bpp.lz"); @@ -2112,7 +2484,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/front.4bpp.lz"); @@ -2129,7 +2503,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/front.4bpp.lz"); @@ -2146,7 +2522,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/front.4bpp.lz"); @@ -2163,21 +2541,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO @@ -2186,7 +2570,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/front.4bpp.lz"); @@ -2209,7 +2595,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MEW #if P_FAMILY_CHIKORITA @@ -2218,21 +2606,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/backf.4bpp.lz"); @@ -2244,21 +2638,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/front.4bpp.lz"); @@ -2275,21 +2675,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TOTODILE #if P_FAMILY_SENTRET @@ -2298,14 +2704,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SENTRET #if P_FAMILY_HOOTHOOT @@ -2314,14 +2724,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HOOTHOOT #if P_FAMILY_LEDYBA @@ -2330,7 +2744,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/backf.4bpp.lz"); @@ -2340,7 +2756,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/backf.4bpp.lz"); @@ -2352,14 +2770,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPINARAK #if P_FAMILY_CHINCHOU @@ -2368,14 +2790,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHINCHOU #if P_FAMILY_TOGEPI @@ -2384,14 +2810,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/anim_front.4bpp.lz"); @@ -2399,7 +2829,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/back.4bpp.lz"); const u32 gMonShinyPalette_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/shiny.gbapal.lz"); const u8 gMonIcon_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TOGEPI @@ -2409,14 +2841,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_XatuF[] = INCBIN_U32("graphics/pokemon/xatu/anim_frontf.4bpp.lz"); #endif //P_FAMILY_NATU @@ -2427,21 +2863,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/front.4bpp.lz"); @@ -2459,7 +2901,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_3_CROSS_EVOS const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); @@ -2467,14 +2911,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MARILL #if P_FAMILY_SUDOWOODO @@ -2484,7 +2932,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/back.4bpp.lz"); const u32 gMonShinyPalette_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/shiny.gbapal.lz"); const u8 gMonIcon_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); @@ -2492,7 +2942,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/backf.4bpp.lz"); @@ -2504,21 +2956,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HOPPIP #if P_FAMILY_AIPOM @@ -2527,7 +2985,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/backf.4bpp.lz"); @@ -2538,7 +2998,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/back.4bpp.lz"); const u32 gMonShinyPalette_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/shiny.gbapal.lz"); const u8 gMonIcon_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/backf.4bpp.lz"); @@ -2551,14 +3013,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SUNKERN #if P_FAMILY_YANMA @@ -2567,7 +3033,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/anim_front.4bpp.lz"); @@ -2575,7 +3043,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/back.4bpp.lz"); const u32 gMonShinyPalette_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/shiny.gbapal.lz"); const u8 gMonIcon_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_YANMA @@ -2585,7 +3055,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/backf.4bpp.lz"); @@ -2595,7 +3067,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/anim_frontf.4bpp.lz"); const u32 gMonBackPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/backf.4bpp.lz"); @@ -2605,14 +3079,16 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/normal.gbapal.lz"); const u32 gMonBackPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/back.4bpp.lz"); const u32 gMonShinyPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/shiny.gbapal.lz"); - // const u8 gMonIcon_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldean/icon.4bpp"); + const u8 gMonIcon_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldean/icon.4bpp"); const u32 gMonFrontPic_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/front.4bpp.lz"); const u32 gMonPalette_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/normal.gbapal.lz"); const u32 gMonBackPic_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/back.4bpp.lz"); const u32 gMonShinyPalette_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/shiny.gbapal.lz"); const u8 gMonIcon_Clodsire[] = INCBIN_U8("graphics/pokemon/clodsire/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Clodsire[] = INCBIN_U8("graphics/pokemon/clodsire/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_PALDEAN_FORMS #endif //P_FAMILY_WOOPER @@ -2622,7 +3098,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/backf.4bpp.lz"); @@ -2633,7 +3111,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/back.4bpp.lz"); const u32 gMonShinyPalette_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/shiny.gbapal.lz"); const u8 gMonIcon_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MURKROW @@ -2643,7 +3123,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/anim_front.4bpp.lz"); @@ -2651,14 +3133,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/back.4bpp.lz"); const u32 gMonShinyPalette_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/shiny.gbapal.lz"); const u8 gMonIcon_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MISDREAVUS #if P_FAMILY_UNOWN const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/anim_front.4bpp.lz"); const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/back.4bpp.lz"); @@ -2780,7 +3266,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_3_CROSS_EVOS const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); @@ -2788,7 +3276,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/backf.4bpp.lz"); @@ -2803,7 +3293,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/backf.4bpp.lz"); @@ -2814,7 +3306,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/back.4bpp.lz"); const u32 gMonShinyPalette_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/shiny.gbapal.lz"); const u8 gMonIcon_Farigiraf[] = INCBIN_U8("graphics/pokemon/farigiraf/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Farigiraf[] = INCBIN_U8("graphics/pokemon/farigiraf/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_GIRAFARIG @@ -2824,14 +3318,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PINECO #if P_FAMILY_DUNSPARCE @@ -2840,13 +3338,17 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_9_CROSS_EVOS const u32 gMonPalette_Dudunsparce[] = INCBIN_U32("graphics/pokemon/dudunsparce/normal.gbapal.lz"); const u32 gMonShinyPalette_Dudunsparce[] = INCBIN_U32("graphics/pokemon/dudunsparce/shiny.gbapal.lz"); const u8 gMonIcon_Dudunsparce[] = INCBIN_U8("graphics/pokemon/dudunsparce/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Dudunsparce[] = INCBIN_U8("graphics/pokemon/dudunsparce/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DudunsparceTwoSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/front.4bpp.lz"); const u32 gMonBackPic_DudunsparceTwoSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/back.4bpp.lz"); @@ -2862,7 +3364,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/backf.4bpp.lz"); @@ -2873,7 +3377,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/back.4bpp.lz"); const u32 gMonShinyPalette_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/shiny.gbapal.lz"); const u8 gMonIcon_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_GLIGAR @@ -2883,14 +3389,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SNUBBULL #if P_FAMILY_QWILFISH @@ -2899,7 +3409,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/front.4bpp.lz"); @@ -2913,7 +3425,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/back.4bpp.lz"); const u32 gMonShinyPalette_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/shiny.gbapal.lz"); const u8 gMonIcon_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_HISUIAN_FORMS #endif //P_FAMILY_QWILFISH @@ -2923,7 +3437,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHUCKLE #if P_FAMILY_HERACROSS @@ -2932,7 +3448,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/backf.4bpp.lz"); @@ -2952,7 +3470,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/backf.4bpp.lz"); @@ -2963,7 +3483,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/back.4bpp.lz"); const u32 gMonShinyPalette_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/shiny.gbapal.lz"); const u8 gMonIcon_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/backf.4bpp.lz"); @@ -2984,7 +3506,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/back.4bpp.lz"); const u32 gMonShinyPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/shiny.gbapal.lz"); const u8 gMonIcon_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_HISUIAN_FORMS #endif //P_FAMILY_SNEASEL @@ -2994,14 +3518,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/anim_frontf.4bpp.lz"); const u32 gMonBackPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/backf.4bpp.lz"); @@ -3012,13 +3540,15 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/back.4bpp.lz"); const u32 gMonShinyPalette_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/shiny.gbapal.lz"); const u8 gMonIcon_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/front.4bpp.lz"); const u32 gMonPalette_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/normal.gbapal.lz"); const u32 gMonBackPic_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/back.4bpp.lz"); const u32 gMonShinyPalette_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/shiny.gbapal.lz"); - // const u8 gMonIcon_UrsalunaBloodmoon[] = INCBIN_U8("graphics/pokemon/ursaluna/bloodmoon/icon.4bpp"); + const u8 gMonIcon_UrsalunaBloodmoon[] = INCBIN_U8("graphics/pokemon/ursaluna/bloodmoon/icon.4bpp"); #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_TEDDIURSA @@ -3028,14 +3558,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SLUGMA #if P_FAMILY_SWINUB @@ -3044,14 +3578,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/backf.4bpp.lz"); @@ -3062,7 +3600,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/back.4bpp.lz"); const u32 gMonShinyPalette_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/shiny.gbapal.lz"); const u8 gMonIcon_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MamoswineF[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_frontf.4bpp.lz"); #endif //P_GEN_4_CROSS_EVOS @@ -3074,7 +3614,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/front.4bpp.lz"); @@ -3088,7 +3630,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/back.4bpp.lz"); const u32 gMonShinyPalette_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/shiny.gbapal.lz"); const u8 gMonIcon_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_CORSOLA @@ -3098,14 +3642,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/anim_frontf.4bpp.lz"); const u32 gMonBackPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/backf.4bpp.lz"); @@ -3117,7 +3665,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DELIBIRD #if P_FAMILY_MANTINE @@ -3127,7 +3677,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/back.4bpp.lz"); const u32 gMonShinyPalette_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/shiny.gbapal.lz"); const u8 gMonIcon_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); @@ -3135,7 +3687,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MANTINE #if P_FAMILY_SKARMORY @@ -3144,7 +3698,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKARMORY #if P_FAMILY_HOUNDOUR @@ -3153,14 +3709,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/backf.4bpp.lz"); @@ -3180,14 +3740,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/backf.4bpp.lz"); @@ -3199,7 +3763,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_8_CROSS_EVOS const u32 gMonFrontPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/front.4bpp.lz"); @@ -3207,7 +3773,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/back.4bpp.lz"); const u32 gMonShinyPalette_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/shiny.gbapal.lz"); const u8 gMonIcon_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_STANTLER @@ -3217,7 +3785,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SMEARGLE #if P_FAMILY_MILTANK @@ -3226,7 +3796,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MILTANK #if P_FAMILY_RAIKOU @@ -3235,7 +3807,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_RAIKOU #if P_FAMILY_ENTEI @@ -3244,7 +3818,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ENTEI #if P_FAMILY_SUICUNE @@ -3253,7 +3829,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SUICUNE #if P_FAMILY_LARVITAR @@ -3262,21 +3840,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/front.4bpp.lz"); @@ -3293,7 +3877,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LUGIA #if P_FAMILY_HO_OH @@ -3302,7 +3888,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HO_OH #if P_FAMILY_CELEBI @@ -3311,7 +3899,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CELEBI #if P_FAMILY_TREECKO @@ -3320,21 +3910,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/front.4bpp.lz"); @@ -3351,7 +3947,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonBackPic_TorchicF[] = INCBIN_U32("graphics/pokemon/torchic/backf.4bpp.lz"); @@ -3360,7 +3958,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/backf.4bpp.lz"); @@ -3370,7 +3970,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/backf.4bpp.lz"); @@ -3390,21 +3992,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/front.4bpp.lz"); @@ -3421,14 +4029,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_POOCHYENA #if P_FAMILY_ZIGZAGOON @@ -3437,14 +4049,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/front.4bpp.lz"); @@ -3464,7 +4080,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/back.4bpp.lz"); const u32 gMonShinyPalette_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/shiny.gbapal.lz"); const u8 gMonIcon_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZIGZAGOON @@ -3474,21 +4092,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/backf.4bpp.lz"); @@ -3498,14 +4122,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/backf.4bpp.lz"); @@ -3517,21 +4145,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/backf.4bpp.lz"); @@ -3543,14 +4177,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_frontf.4bpp.lz"); const u32 gMonBackPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/backf.4bpp.lz"); @@ -3560,7 +4198,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/backf.4bpp.lz"); @@ -3572,14 +4212,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAILLOW #if P_FAMILY_WINGULL @@ -3588,14 +4232,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WINGULL #if P_FAMILY_RALTS @@ -3604,21 +4252,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/front.4bpp.lz"); @@ -3634,7 +4288,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/back.4bpp.lz"); const u32 gMonShinyPalette_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/shiny.gbapal.lz"); const u8 gMonIcon_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/front.4bpp.lz"); @@ -3652,14 +4308,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SURSKIT #if P_FAMILY_SHROOMISH @@ -3668,14 +4328,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHROOMISH #if P_FAMILY_SLAKOTH @@ -3684,21 +4348,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SLAKOTH #if P_FAMILY_NINCADA @@ -3707,21 +4377,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NINCADA #if P_FAMILY_WHISMUR @@ -3730,21 +4406,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WHISMUR #if P_FAMILY_MAKUHITA @@ -3753,14 +4435,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MAKUHITA #if P_FAMILY_NOSEPASS @@ -3769,7 +4455,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/anim_front.4bpp.lz"); @@ -3777,7 +4465,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/back.4bpp.lz"); const u32 gMonShinyPalette_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/shiny.gbapal.lz"); const u8 gMonIcon_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_NOSEPASS @@ -3787,14 +4477,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKITTY #if P_FAMILY_SABLEYE @@ -3803,7 +4497,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/front.4bpp.lz"); @@ -3820,7 +4516,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/front.4bpp.lz"); @@ -3837,21 +4535,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/front.4bpp.lz"); @@ -3868,7 +4572,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/backf.4bpp.lz"); @@ -3878,7 +4584,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/backf.4bpp.lz"); @@ -3898,14 +4606,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/front.4bpp.lz"); @@ -3922,7 +4634,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PLUSLE #if P_FAMILY_MINUN @@ -3931,7 +4645,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MINUN #if P_FAMILY_VOLBEAT_ILLUMISE @@ -3940,14 +4656,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VOLBEAT_ILLUMISE #if P_FAMILY_ROSELIA @@ -3957,7 +4677,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/back.4bpp.lz"); const u32 gMonShinyPalette_Budew[] = INCBIN_U32("graphics/pokemon/budew/shiny.gbapal.lz"); const u8 gMonIcon_Budew[] = INCBIN_U8("graphics/pokemon/budew/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Budew[] = INCBIN_U8("graphics/pokemon/budew/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); @@ -3965,7 +4687,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/backf.4bpp.lz"); @@ -3976,7 +4700,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/back.4bpp.lz"); const u32 gMonShinyPalette_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/shiny.gbapal.lz"); const u8 gMonIcon_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/backf.4bpp.lz"); @@ -3989,7 +4715,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/backf.4bpp.lz"); @@ -3999,7 +4727,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/backf.4bpp.lz"); @@ -4011,14 +4741,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/front.4bpp.lz"); @@ -4035,14 +4769,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WAILMER #if P_FAMILY_NUMEL @@ -4051,7 +4789,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/anim_frontf.4bpp.lz"); const u32 gMonBackPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/backf.4bpp.lz"); @@ -4061,7 +4801,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/backf.4bpp.lz"); @@ -4081,7 +4823,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TORKOAL #if P_FAMILY_SPOINK @@ -4090,14 +4834,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPOINK #if P_FAMILY_SPINDA @@ -4106,7 +4854,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz"); const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz"); const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPINDA #if P_FAMILY_TRAPINCH @@ -4115,21 +4865,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TRAPINCH #if P_FAMILY_CACNEA @@ -4138,14 +4894,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CacturneF[] = INCBIN_U32("graphics/pokemon/cacturne/anim_frontf.4bpp.lz"); #endif //P_FAMILY_CACNEA @@ -4156,14 +4916,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/front.4bpp.lz"); @@ -4180,7 +4944,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ZANGOOSE #if P_FAMILY_SEVIPER @@ -4189,7 +4955,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SEVIPER #if P_FAMILY_LUNATONE @@ -4198,7 +4966,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LUNATONE #if P_FAMILY_SOLROCK @@ -4207,7 +4977,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SOLROCK #if P_FAMILY_BARBOACH @@ -4216,14 +4988,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BARBOACH #if P_FAMILY_CORPHISH @@ -4232,14 +5008,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CORPHISH #if P_FAMILY_BALTOY @@ -4248,14 +5028,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BALTOY #if P_FAMILY_LILEEP @@ -4264,14 +5048,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LILEEP #if P_FAMILY_ANORITH @@ -4280,14 +5068,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ANORITH #if P_FAMILY_FEEBAS @@ -4296,14 +5088,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/backf.4bpp.lz"); @@ -4315,7 +5111,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz"); const u32 gMonShinyPalette_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz"); const u8 gMonIcon_CastformNormal[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/anim_front.4bpp.lz"); const u32 gMonPalette_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/normal.gbapal.lz"); @@ -4342,7 +5140,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KECLEON #if P_FAMILY_SHUPPET @@ -4351,14 +5151,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/front.4bpp.lz"); @@ -4375,14 +5179,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/anim_front.4bpp.lz"); @@ -4390,7 +5198,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/back.4bpp.lz"); const u32 gMonShinyPalette_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/shiny.gbapal.lz"); const u8 gMonIcon_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_DUSKULL @@ -4400,7 +5210,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TROPIUS #if P_FAMILY_CHIMECHO @@ -4410,7 +5222,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/back.4bpp.lz"); const u32 gMonShinyPalette_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/shiny.gbapal.lz"); const u8 gMonIcon_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); @@ -4418,7 +5232,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHIMECHO #if P_FAMILY_ABSOL @@ -4427,7 +5243,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/front.4bpp.lz"); @@ -4444,14 +5262,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/front.4bpp.lz"); @@ -4467,7 +5289,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/back.4bpp.lz"); const u32 gMonShinyPalette_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/shiny.gbapal.lz"); const u8 gMonIcon_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SNORUNT @@ -4477,21 +5301,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPHEAL #if P_FAMILY_CLAMPERL @@ -4500,21 +5330,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CLAMPERL #if P_FAMILY_RELICANTH @@ -4523,7 +5359,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/backf.4bpp.lz"); @@ -4535,7 +5373,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LUVDISC #if P_FAMILY_BAGON @@ -4544,21 +5384,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/front.4bpp.lz"); @@ -4575,21 +5421,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/front.4bpp.lz"); @@ -4606,7 +5458,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGIROCK #if P_FAMILY_REGICE @@ -4615,7 +5469,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGICE #if P_FAMILY_REGISTEEL @@ -4624,7 +5480,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGISTEEL #if P_FAMILY_LATIAS @@ -4633,7 +5491,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/front.4bpp.lz"); @@ -4650,7 +5510,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/front.4bpp.lz"); @@ -4667,7 +5529,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_PRIMAL_REVERSIONS const u32 gMonFrontPic_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/front.4bpp.lz"); @@ -4684,7 +5548,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_PRIMAL_REVERSIONS const u32 gMonFrontPic_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/front.4bpp.lz"); @@ -4701,7 +5567,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/front.4bpp.lz"); @@ -4718,7 +5586,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_JIRACHI #if P_FAMILY_DEOXYS @@ -4727,7 +5597,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); const u32 gMonShinyPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); const u8 gMonIcon_DeoxysNormal[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/anim_front.4bpp.lz"); const u32 gMonPalette_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/normal.gbapal.lz"); @@ -4754,21 +5626,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/back.4bpp.lz"); const u32 gMonShinyPalette_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/shiny.gbapal.lz"); const u8 gMonIcon_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/anim_front.4bpp.lz"); const u32 gMonPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/normal.gbapal.lz"); const u32 gMonBackPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/back.4bpp.lz"); const u32 gMonShinyPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/shiny.gbapal.lz"); const u8 gMonIcon_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/anim_front.4bpp.lz"); const u32 gMonPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/normal.gbapal.lz"); const u32 gMonBackPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/back.4bpp.lz"); const u32 gMonShinyPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/shiny.gbapal.lz"); const u8 gMonIcon_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TURTWIG #if P_FAMILY_CHIMCHAR @@ -4777,21 +5655,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/back.4bpp.lz"); const u32 gMonShinyPalette_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/shiny.gbapal.lz"); const u8 gMonIcon_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/anim_front.4bpp.lz"); const u32 gMonPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/normal.gbapal.lz"); const u32 gMonBackPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/back.4bpp.lz"); const u32 gMonShinyPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/shiny.gbapal.lz"); const u8 gMonIcon_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/anim_front.4bpp.lz"); const u32 gMonPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/normal.gbapal.lz"); const u32 gMonBackPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/back.4bpp.lz"); const u32 gMonShinyPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/shiny.gbapal.lz"); const u8 gMonIcon_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHIMCHAR #if P_FAMILY_PIPLUP @@ -4800,21 +5684,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/back.4bpp.lz"); const u32 gMonShinyPalette_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/shiny.gbapal.lz"); const u8 gMonIcon_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/anim_front.4bpp.lz"); const u32 gMonPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/normal.gbapal.lz"); const u32 gMonBackPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/back.4bpp.lz"); const u32 gMonShinyPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/shiny.gbapal.lz"); const u8 gMonIcon_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/anim_front.4bpp.lz"); const u32 gMonPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/normal.gbapal.lz"); const u32 gMonBackPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/back.4bpp.lz"); const u32 gMonShinyPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/shiny.gbapal.lz"); const u8 gMonIcon_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PIPLUP #if P_FAMILY_STARLY @@ -4823,7 +5713,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/back.4bpp.lz"); const u32 gMonShinyPalette_Starly[] = INCBIN_U32("graphics/pokemon/starly/shiny.gbapal.lz"); const u8 gMonIcon_Starly[] = INCBIN_U8("graphics/pokemon/starly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Starly[] = INCBIN_U8("graphics/pokemon/starly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/anim_frontf.4bpp.lz"); const u32 gMonBackPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/backf.4bpp.lz"); @@ -4833,7 +5725,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); const u32 gMonShinyPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/shiny.gbapal.lz"); const u8 gMonIcon_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/anim_frontf.4bpp.lz"); const u32 gMonBackPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); @@ -4843,7 +5737,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/back.4bpp.lz"); const u32 gMonShinyPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/shiny.gbapal.lz"); const u8 gMonIcon_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_StaraptorF[] = INCBIN_U32("graphics/pokemon/staraptor/anim_frontf.4bpp.lz"); #endif //P_FAMILY_STARLY @@ -4854,7 +5750,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/back.4bpp.lz"); const u32 gMonShinyPalette_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/shiny.gbapal.lz"); const u8 gMonIcon_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/backf.4bpp.lz"); @@ -4864,7 +5762,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/back.4bpp.lz"); const u32 gMonShinyPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/shiny.gbapal.lz"); const u8 gMonIcon_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BibarelF[] = INCBIN_U32("graphics/pokemon/bibarel/anim_frontf.4bpp.lz"); #endif //P_FAMILY_BIDOOF @@ -4875,7 +5775,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/back.4bpp.lz"); const u32 gMonShinyPalette_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/shiny.gbapal.lz"); const u8 gMonIcon_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); @@ -4885,7 +5787,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/back.4bpp.lz"); const u32 gMonShinyPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/shiny.gbapal.lz"); const u8 gMonIcon_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/backf.4bpp.lz"); @@ -4897,7 +5801,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/back.4bpp.lz"); const u32 gMonShinyPalette_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/shiny.gbapal.lz"); const u8 gMonIcon_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); @@ -4907,7 +5813,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/back.4bpp.lz"); const u32 gMonShinyPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/shiny.gbapal.lz"); const u8 gMonIcon_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/backf.4bpp.lz"); @@ -4917,7 +5825,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/back.4bpp.lz"); const u32 gMonShinyPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/shiny.gbapal.lz"); const u8 gMonIcon_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/backf.4bpp.lz"); @@ -4929,14 +5839,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/back.4bpp.lz"); const u32 gMonShinyPalette_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/shiny.gbapal.lz"); const u8 gMonIcon_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/anim_front.4bpp.lz"); const u32 gMonPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/normal.gbapal.lz"); const u32 gMonBackPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/back.4bpp.lz"); const u32 gMonShinyPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/shiny.gbapal.lz"); const u8 gMonIcon_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CRANIDOS #if P_FAMILY_SHIELDON @@ -4945,14 +5859,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/back.4bpp.lz"); const u32 gMonShinyPalette_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/shiny.gbapal.lz"); const u8 gMonIcon_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/anim_front.4bpp.lz"); const u32 gMonPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/normal.gbapal.lz"); const u32 gMonBackPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/back.4bpp.lz"); const u32 gMonShinyPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/shiny.gbapal.lz"); const u8 gMonIcon_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHIELDON #if P_FAMILY_BURMY @@ -4961,7 +5879,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/back.4bpp.lz"); const u32 gMonShinyPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/shiny.gbapal.lz"); const u8 gMonIcon_BurmyPlantCloak[] = INCBIN_U8("graphics/pokemon/burmy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Burmy[] = INCBIN_U8("graphics/pokemon/burmy/plant/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/anim_front.4bpp.lz"); const u32 gMonPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/normal.gbapal.lz"); @@ -4980,7 +5900,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/back.4bpp.lz"); const u32 gMonShinyPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/shiny.gbapal.lz"); const u8 gMonIcon_WormadamPlantCloak[] = INCBIN_U8("graphics/pokemon/wormadam/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wormadam[] = INCBIN_U8("graphics/pokemon/wormadam/plant/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/anim_front.4bpp.lz"); const u32 gMonPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/normal.gbapal.lz"); @@ -4999,7 +5921,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/back.4bpp.lz"); const u32 gMonShinyPalette_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/shiny.gbapal.lz"); const u8 gMonIcon_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BURMY #if P_FAMILY_COMBEE @@ -5008,7 +5932,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Combee[] = INCBIN_U32("graphics/pokemon/combee/back.4bpp.lz"); const u32 gMonShinyPalette_Combee[] = INCBIN_U32("graphics/pokemon/combee/shiny.gbapal.lz"); const u8 gMonIcon_Combee[] = INCBIN_U8("graphics/pokemon/combee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Combee[] = INCBIN_U8("graphics/pokemon/combee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/normalf.gbapal.lz"); const u32 gMonShinyPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/shinyf.gbapal.lz"); @@ -5018,7 +5944,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/back.4bpp.lz"); const u32 gMonShinyPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/shiny.gbapal.lz"); const u8 gMonIcon_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_COMBEE #if P_FAMILY_PACHIRISU @@ -5027,7 +5955,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/back.4bpp.lz"); const u32 gMonShinyPalette_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/shiny.gbapal.lz"); const u8 gMonIcon_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PachirisuF[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_frontf.4bpp.lz"); #endif //P_FAMILY_PACHIRISU @@ -5038,7 +5968,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/back.4bpp.lz"); const u32 gMonShinyPalette_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/shiny.gbapal.lz"); const u8 gMonIcon_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonBackPic_BuizelF[] = INCBIN_U32("graphics/pokemon/buizel/backf.4bpp.lz"); @@ -5047,7 +5979,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/back.4bpp.lz"); const u32 gMonShinyPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/shiny.gbapal.lz"); const u8 gMonIcon_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonBackPic_FloatzelF[] = INCBIN_U32("graphics/pokemon/floatzel/backf.4bpp.lz"); #endif //P_FAMILY_BUIZEL @@ -5058,14 +5992,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/back.4bpp.lz"); const u32 gMonShinyPalette_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/shiny.gbapal.lz"); const u8 gMonIcon_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/anim_front.4bpp.lz"); const u32 gMonPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/normal.gbapal.lz"); const u32 gMonBackPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/back.4bpp.lz"); const u32 gMonShinyPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/shiny.gbapal.lz"); const u8 gMonIcon_CherrimOvercast[] = INCBIN_U8("graphics/pokemon/cherrim/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cherrim[] = INCBIN_U8("graphics/pokemon/cherrim/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/anim_front.4bpp.lz"); const u32 gMonPalette_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/normal.gbapal.lz"); @@ -5080,7 +6018,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/back.4bpp.lz"); const u32 gMonShinyPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/shiny.gbapal.lz"); const u8 gMonIcon_ShellosWestSea[] = INCBIN_U8("graphics/pokemon/shellos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shellos[] = INCBIN_U8("graphics/pokemon/shellos/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/anim_front.4bpp.lz"); const u32 gMonPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/normal.gbapal.lz"); @@ -5093,7 +6033,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/back.4bpp.lz"); const u32 gMonShinyPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/shiny.gbapal.lz"); const u8 gMonIcon_GastrodonWestSea[] = INCBIN_U8("graphics/pokemon/gastrodon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gastrodon[] = INCBIN_U8("graphics/pokemon/gastrodon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/anim_front.4bpp.lz"); const u32 gMonPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/normal.gbapal.lz"); @@ -5108,14 +6050,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/back.4bpp.lz"); const u32 gMonShinyPalette_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/shiny.gbapal.lz"); const u8 gMonIcon_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/anim_front.4bpp.lz"); const u32 gMonPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/normal.gbapal.lz"); const u32 gMonBackPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/back.4bpp.lz"); const u32 gMonShinyPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/shiny.gbapal.lz"); const u8 gMonIcon_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRIFLOON #if P_FAMILY_BUNEARY @@ -5124,14 +6070,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/back.4bpp.lz"); const u32 gMonShinyPalette_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/shiny.gbapal.lz"); const u8 gMonIcon_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/anim_front.4bpp.lz"); const u32 gMonPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/normal.gbapal.lz"); const u32 gMonBackPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/back.4bpp.lz"); const u32 gMonShinyPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/shiny.gbapal.lz"); const u8 gMonIcon_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/front.4bpp.lz"); @@ -5148,14 +6098,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/back.4bpp.lz"); const u32 gMonShinyPalette_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/shiny.gbapal.lz"); const u8 gMonIcon_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/anim_front.4bpp.lz"); const u32 gMonPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/normal.gbapal.lz"); const u32 gMonBackPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/back.4bpp.lz"); const u32 gMonShinyPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/shiny.gbapal.lz"); const u8 gMonIcon_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GLAMEOW #if P_FAMILY_STUNKY @@ -5164,14 +6118,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/back.4bpp.lz"); const u32 gMonShinyPalette_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/shiny.gbapal.lz"); const u8 gMonIcon_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/anim_front.4bpp.lz"); const u32 gMonPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/normal.gbapal.lz"); const u32 gMonBackPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/back.4bpp.lz"); const u32 gMonShinyPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/shiny.gbapal.lz"); const u8 gMonIcon_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_STUNKY #if P_FAMILY_BRONZOR @@ -5180,14 +6138,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/back.4bpp.lz"); const u32 gMonShinyPalette_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/shiny.gbapal.lz"); const u8 gMonIcon_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/anim_front.4bpp.lz"); const u32 gMonPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/normal.gbapal.lz"); const u32 gMonBackPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/back.4bpp.lz"); const u32 gMonShinyPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/shiny.gbapal.lz"); const u8 gMonIcon_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BRONZOR #if P_FAMILY_CHATOT @@ -5196,7 +6158,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/back.4bpp.lz"); const u32 gMonShinyPalette_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/shiny.gbapal.lz"); const u8 gMonIcon_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHATOT #if P_FAMILY_SPIRITOMB @@ -5205,7 +6169,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/back.4bpp.lz"); const u32 gMonShinyPalette_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/shiny.gbapal.lz"); const u8 gMonIcon_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPIRITOMB #if P_FAMILY_GIBLE @@ -5214,7 +6180,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gible[] = INCBIN_U32("graphics/pokemon/gible/back.4bpp.lz"); const u32 gMonShinyPalette_Gible[] = INCBIN_U32("graphics/pokemon/gible/shiny.gbapal.lz"); const u8 gMonIcon_Gible[] = INCBIN_U8("graphics/pokemon/gible/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gible[] = INCBIN_U8("graphics/pokemon/gible/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/backf.4bpp.lz"); @@ -5224,7 +6192,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/back.4bpp.lz"); const u32 gMonShinyPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/shiny.gbapal.lz"); const u8 gMonIcon_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/backf.4bpp.lz"); @@ -5234,7 +6204,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/back.4bpp.lz"); const u32 gMonShinyPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/shiny.gbapal.lz"); const u8 gMonIcon_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GarchompF[] = INCBIN_U32("graphics/pokemon/garchomp/anim_frontf.4bpp.lz"); @@ -5253,14 +6225,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/back.4bpp.lz"); const u32 gMonShinyPalette_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/shiny.gbapal.lz"); const u8 gMonIcon_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/anim_front.4bpp.lz"); const u32 gMonPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/normal.gbapal.lz"); const u32 gMonBackPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/back.4bpp.lz"); const u32 gMonShinyPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/shiny.gbapal.lz"); const u8 gMonIcon_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/front.4bpp.lz"); @@ -5277,7 +6253,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/back.4bpp.lz"); const u32 gMonShinyPalette_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/shiny.gbapal.lz"); const u8 gMonIcon_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/normalf.gbapal.lz"); const u32 gMonShinyPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/shinyf.gbapal.lz"); @@ -5290,7 +6268,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/back.4bpp.lz"); const u32 gMonShinyPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/shiny.gbapal.lz"); const u8 gMonIcon_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/normalf.gbapal.lz"); const u32 gMonShinyPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/shinyf.gbapal.lz"); @@ -5305,14 +6285,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/back.4bpp.lz"); const u32 gMonShinyPalette_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/shiny.gbapal.lz"); const u8 gMonIcon_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/anim_front.4bpp.lz"); const u32 gMonPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/normal.gbapal.lz"); const u32 gMonBackPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/back.4bpp.lz"); const u32 gMonShinyPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/shiny.gbapal.lz"); const u8 gMonIcon_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKORUPI #if P_FAMILY_CROAGUNK @@ -5321,7 +6305,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/back.4bpp.lz"); const u32 gMonShinyPalette_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/shiny.gbapal.lz"); const u8 gMonIcon_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/backf.4bpp.lz"); @@ -5331,7 +6317,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/back.4bpp.lz"); const u32 gMonShinyPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/shiny.gbapal.lz"); const u8 gMonIcon_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/backf.4bpp.lz"); @@ -5343,7 +6331,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/back.4bpp.lz"); const u32 gMonShinyPalette_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/shiny.gbapal.lz"); const u8 gMonIcon_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CARNIVINE #if P_FAMILY_FINNEON @@ -5352,7 +6342,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/back.4bpp.lz"); const u32 gMonShinyPalette_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/shiny.gbapal.lz"); const u8 gMonIcon_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/backf.4bpp.lz"); @@ -5362,7 +6354,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/back.4bpp.lz"); const u32 gMonShinyPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/shiny.gbapal.lz"); const u8 gMonIcon_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/backf.4bpp.lz"); @@ -5374,7 +6368,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snover[] = INCBIN_U32("graphics/pokemon/snover/back.4bpp.lz"); const u32 gMonShinyPalette_Snover[] = INCBIN_U32("graphics/pokemon/snover/shiny.gbapal.lz"); const u8 gMonIcon_Snover[] = INCBIN_U8("graphics/pokemon/snover/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snover[] = INCBIN_U8("graphics/pokemon/snover/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/backf.4bpp.lz"); @@ -5384,7 +6380,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/back.4bpp.lz"); const u32 gMonShinyPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/shiny.gbapal.lz"); const u8 gMonIcon_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AbomasnowF[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_frontf.4bpp.lz"); @@ -5403,7 +6401,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/back.4bpp.lz"); const u32 gMonShinyPalette_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/shiny.gbapal.lz"); const u8 gMonIcon_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/normal/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/anim_front.4bpp.lz"); const u32 gMonPalette_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/normal.gbapal.lz"); @@ -5442,7 +6442,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/back.4bpp.lz"); const u32 gMonShinyPalette_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/shiny.gbapal.lz"); const u8 gMonIcon_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_UXIE #if P_FAMILY_MESPRIT @@ -5451,7 +6453,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/back.4bpp.lz"); const u32 gMonShinyPalette_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/shiny.gbapal.lz"); const u8 gMonIcon_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MESPRIT #if P_FAMILY_AZELF @@ -5460,7 +6464,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/back.4bpp.lz"); const u32 gMonShinyPalette_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/shiny.gbapal.lz"); const u8 gMonIcon_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_AZELF #if P_FAMILY_DIALGA @@ -5469,7 +6475,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/back.4bpp.lz"); const u32 gMonShinyPalette_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/shiny.gbapal.lz"); const u8 gMonIcon_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/front.4bpp.lz"); const u32 gMonPalette_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/normal.gbapal.lz"); @@ -5484,7 +6492,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/back.4bpp.lz"); const u32 gMonShinyPalette_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/shiny.gbapal.lz"); const u8 gMonIcon_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/front.4bpp.lz"); const u32 gMonPalette_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/normal.gbapal.lz"); @@ -5499,7 +6509,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/back.4bpp.lz"); const u32 gMonShinyPalette_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/shiny.gbapal.lz"); const u8 gMonIcon_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HEATRAN #if P_FAMILY_REGIGIGAS @@ -5508,7 +6520,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/back.4bpp.lz"); const u32 gMonShinyPalette_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/shiny.gbapal.lz"); const u8 gMonIcon_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGIGIGAS #if P_FAMILY_GIRATINA @@ -5517,7 +6531,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/back.4bpp.lz"); const u32 gMonShinyPalette_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/shiny.gbapal.lz"); const u8 gMonIcon_GiratinaAltered[] = INCBIN_U8("graphics/pokemon/giratina/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Giratina[] = INCBIN_U8("graphics/pokemon/giratina/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/anim_front.4bpp.lz"); const u32 gMonPalette_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/normal.gbapal.lz"); @@ -5532,7 +6548,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/back.4bpp.lz"); const u32 gMonShinyPalette_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/shiny.gbapal.lz"); const u8 gMonIcon_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CRESSELIA #if P_FAMILY_MANAPHY @@ -5541,14 +6559,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Phione[] = INCBIN_U32("graphics/pokemon/phione/back.4bpp.lz"); const u32 gMonShinyPalette_Phione[] = INCBIN_U32("graphics/pokemon/phione/shiny.gbapal.lz"); const u8 gMonIcon_Phione[] = INCBIN_U8("graphics/pokemon/phione/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Phione[] = INCBIN_U8("graphics/pokemon/phione/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/anim_front.4bpp.lz"); const u32 gMonPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/normal.gbapal.lz"); const u32 gMonBackPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/back.4bpp.lz"); const u32 gMonShinyPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/shiny.gbapal.lz"); const u8 gMonIcon_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MANAPHY #if P_FAMILY_DARKRAI @@ -5557,7 +6579,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/back.4bpp.lz"); const u32 gMonShinyPalette_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/shiny.gbapal.lz"); const u8 gMonIcon_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DARKRAI #if P_FAMILY_SHAYMIN @@ -5566,7 +6590,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/back.4bpp.lz"); const u32 gMonShinyPalette_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/shiny.gbapal.lz"); const u8 gMonIcon_ShayminLand[] = INCBIN_U8("graphics/pokemon/shaymin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shaymin[] = INCBIN_U8("graphics/pokemon/shaymin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/anim_front.4bpp.lz"); const u32 gMonPalette_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/normal.gbapal.lz"); @@ -5579,7 +6605,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonFrontPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/anim_front.4bpp.lz"); const u32 gMonBackPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/back.4bpp.lz"); const u8 gMonIcon_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_ArceusNormal[] = INCBIN_U32("graphics/pokemon/arceus/normal.gbapal.lz"); const u32 gMonShinyPalette_ArceusNormal[] = INCBIN_U32("graphics/pokemon/arceus/shiny.gbapal.lz"); @@ -5642,7 +6670,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Victini[] = INCBIN_U32("graphics/pokemon/victini/back.4bpp.lz"); const u32 gMonShinyPalette_Victini[] = INCBIN_U32("graphics/pokemon/victini/shiny.gbapal.lz"); const u8 gMonIcon_Victini[] = INCBIN_U8("graphics/pokemon/victini/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Victini[] = INCBIN_U8("graphics/pokemon/victini/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VICTINI #if P_FAMILY_SNIVY @@ -5651,21 +6681,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/back.4bpp.lz"); const u32 gMonShinyPalette_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/shiny.gbapal.lz"); const u8 gMonIcon_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/anim_front.4bpp.lz"); const u32 gMonPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/normal.gbapal.lz"); const u32 gMonBackPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/back.4bpp.lz"); const u32 gMonShinyPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/shiny.gbapal.lz"); const u8 gMonIcon_Servine[] = INCBIN_U8("graphics/pokemon/servine/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Servine[] = INCBIN_U8("graphics/pokemon/servine/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/anim_front.4bpp.lz"); const u32 gMonPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/normal.gbapal.lz"); const u32 gMonBackPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/back.4bpp.lz"); const u32 gMonShinyPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/shiny.gbapal.lz"); const u8 gMonIcon_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SNIVY #if P_FAMILY_TEPIG @@ -5674,21 +6710,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/back.4bpp.lz"); const u32 gMonShinyPalette_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/shiny.gbapal.lz"); const u8 gMonIcon_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/anim_front.4bpp.lz"); const u32 gMonPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/normal.gbapal.lz"); const u32 gMonBackPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/back.4bpp.lz"); const u32 gMonShinyPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/shiny.gbapal.lz"); const u8 gMonIcon_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/anim_front.4bpp.lz"); const u32 gMonPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/normal.gbapal.lz"); const u32 gMonBackPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/back.4bpp.lz"); const u32 gMonShinyPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/shiny.gbapal.lz"); const u8 gMonIcon_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TEPIG #if P_FAMILY_OSHAWOTT @@ -5697,21 +6739,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/back.4bpp.lz"); const u32 gMonShinyPalette_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/shiny.gbapal.lz"); const u8 gMonIcon_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/anim_front.4bpp.lz"); const u32 gMonPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/normal.gbapal.lz"); const u32 gMonBackPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/back.4bpp.lz"); const u32 gMonShinyPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/shiny.gbapal.lz"); const u8 gMonIcon_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/anim_front.4bpp.lz"); const u32 gMonPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/normal.gbapal.lz"); const u32 gMonBackPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/back.4bpp.lz"); const u32 gMonShinyPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/shiny.gbapal.lz"); const u8 gMonIcon_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/front.4bpp.lz"); @@ -5728,14 +6776,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/back.4bpp.lz"); const u32 gMonShinyPalette_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/shiny.gbapal.lz"); const u8 gMonIcon_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/anim_front.4bpp.lz"); const u32 gMonPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/normal.gbapal.lz"); const u32 gMonBackPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/back.4bpp.lz"); const u32 gMonShinyPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/shiny.gbapal.lz"); const u8 gMonIcon_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PATRAT #if P_FAMILY_LILLIPUP @@ -5744,21 +6796,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/back.4bpp.lz"); const u32 gMonShinyPalette_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/shiny.gbapal.lz"); const u8 gMonIcon_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/anim_front.4bpp.lz"); const u32 gMonPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/normal.gbapal.lz"); const u32 gMonBackPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/back.4bpp.lz"); const u32 gMonShinyPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/shiny.gbapal.lz"); const u8 gMonIcon_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/anim_front.4bpp.lz"); const u32 gMonPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/normal.gbapal.lz"); const u32 gMonBackPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/back.4bpp.lz"); const u32 gMonShinyPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/shiny.gbapal.lz"); const u8 gMonIcon_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LILLIPUP #if P_FAMILY_PURRLOIN @@ -5767,14 +6825,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/back.4bpp.lz"); const u32 gMonShinyPalette_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/shiny.gbapal.lz"); const u8 gMonIcon_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/anim_front.4bpp.lz"); const u32 gMonPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/normal.gbapal.lz"); const u32 gMonBackPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/back.4bpp.lz"); const u32 gMonShinyPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/shiny.gbapal.lz"); const u8 gMonIcon_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PURRLOIN #if P_FAMILY_PANSAGE @@ -5783,14 +6845,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/back.4bpp.lz"); const u32 gMonShinyPalette_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/shiny.gbapal.lz"); const u8 gMonIcon_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/anim_front.4bpp.lz"); const u32 gMonPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/normal.gbapal.lz"); const u32 gMonBackPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/back.4bpp.lz"); const u32 gMonShinyPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/shiny.gbapal.lz"); const u8 gMonIcon_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PANSAGE #if P_FAMILY_PANSEAR @@ -5799,14 +6865,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/back.4bpp.lz"); const u32 gMonShinyPalette_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/shiny.gbapal.lz"); const u8 gMonIcon_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/anim_front.4bpp.lz"); const u32 gMonPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/normal.gbapal.lz"); const u32 gMonBackPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/back.4bpp.lz"); const u32 gMonShinyPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/shiny.gbapal.lz"); const u8 gMonIcon_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PANSEAR #if P_FAMILY_PANPOUR @@ -5815,14 +6885,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/back.4bpp.lz"); const u32 gMonShinyPalette_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/shiny.gbapal.lz"); const u8 gMonIcon_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/anim_front.4bpp.lz"); const u32 gMonPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/normal.gbapal.lz"); const u32 gMonBackPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/back.4bpp.lz"); const u32 gMonShinyPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/shiny.gbapal.lz"); const u8 gMonIcon_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PANPOUR #if P_FAMILY_MUNNA @@ -5831,14 +6905,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Munna[] = INCBIN_U32("graphics/pokemon/munna/back.4bpp.lz"); const u32 gMonShinyPalette_Munna[] = INCBIN_U32("graphics/pokemon/munna/shiny.gbapal.lz"); const u8 gMonIcon_Munna[] = INCBIN_U8("graphics/pokemon/munna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Munna[] = INCBIN_U8("graphics/pokemon/munna/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/anim_front.4bpp.lz"); const u32 gMonPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/normal.gbapal.lz"); const u32 gMonBackPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/back.4bpp.lz"); const u32 gMonShinyPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/shiny.gbapal.lz"); const u8 gMonIcon_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MUNNA #if P_FAMILY_PIDOVE @@ -5847,21 +6925,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/back.4bpp.lz"); const u32 gMonShinyPalette_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/shiny.gbapal.lz"); const u8 gMonIcon_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/anim_front.4bpp.lz"); const u32 gMonPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/normal.gbapal.lz"); const u32 gMonBackPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/back.4bpp.lz"); const u32 gMonShinyPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/shiny.gbapal.lz"); const u8 gMonIcon_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/anim_front.4bpp.lz"); const u32 gMonPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/normal.gbapal.lz"); const u32 gMonBackPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/back.4bpp.lz"); const u32 gMonShinyPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/shiny.gbapal.lz"); const u8 gMonIcon_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/anim_frontf.4bpp.lz"); const u32 gMonPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/normalf.gbapal.lz"); @@ -5876,14 +6960,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/back.4bpp.lz"); const u32 gMonShinyPalette_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/shiny.gbapal.lz"); const u8 gMonIcon_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/anim_front.4bpp.lz"); const u32 gMonPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/normal.gbapal.lz"); const u32 gMonBackPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/back.4bpp.lz"); const u32 gMonShinyPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/shiny.gbapal.lz"); const u8 gMonIcon_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BLITZLE #if P_FAMILY_ROGGENROLA @@ -5892,21 +6980,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/back.4bpp.lz"); const u32 gMonShinyPalette_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/shiny.gbapal.lz"); const u8 gMonIcon_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/anim_front.4bpp.lz"); const u32 gMonPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/normal.gbapal.lz"); const u32 gMonBackPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/back.4bpp.lz"); const u32 gMonShinyPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/shiny.gbapal.lz"); const u8 gMonIcon_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/anim_front.4bpp.lz"); const u32 gMonPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/normal.gbapal.lz"); const u32 gMonBackPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/back.4bpp.lz"); const u32 gMonShinyPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/shiny.gbapal.lz"); const u8 gMonIcon_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ROGGENROLA #if P_FAMILY_WOOBAT @@ -5915,14 +7009,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/back.4bpp.lz"); const u32 gMonShinyPalette_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/shiny.gbapal.lz"); const u8 gMonIcon_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/anim_front.4bpp.lz"); const u32 gMonPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/normal.gbapal.lz"); const u32 gMonBackPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/back.4bpp.lz"); const u32 gMonShinyPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/shiny.gbapal.lz"); const u8 gMonIcon_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WOOBAT #if P_FAMILY_DRILBUR @@ -5931,14 +7029,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/back.4bpp.lz"); const u32 gMonShinyPalette_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/shiny.gbapal.lz"); const u8 gMonIcon_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/anim_front.4bpp.lz"); const u32 gMonPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/normal.gbapal.lz"); const u32 gMonBackPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/back.4bpp.lz"); const u32 gMonShinyPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/shiny.gbapal.lz"); const u8 gMonIcon_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRILBUR #if P_FAMILY_AUDINO @@ -5947,7 +7049,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Audino[] = INCBIN_U32("graphics/pokemon/audino/back.4bpp.lz"); const u32 gMonShinyPalette_Audino[] = INCBIN_U32("graphics/pokemon/audino/shiny.gbapal.lz"); const u8 gMonIcon_Audino[] = INCBIN_U8("graphics/pokemon/audino/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Audino[] = INCBIN_U8("graphics/pokemon/audino/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/front.4bpp.lz"); @@ -5964,21 +7068,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/back.4bpp.lz"); const u32 gMonShinyPalette_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/shiny.gbapal.lz"); const u8 gMonIcon_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/anim_front.4bpp.lz"); const u32 gMonPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/normal.gbapal.lz"); const u32 gMonBackPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/back.4bpp.lz"); const u32 gMonShinyPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/shiny.gbapal.lz"); const u8 gMonIcon_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/anim_front.4bpp.lz"); const u32 gMonPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/normal.gbapal.lz"); const u32 gMonBackPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/back.4bpp.lz"); const u32 gMonShinyPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/shiny.gbapal.lz"); const u8 gMonIcon_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TIMBURR #if P_FAMILY_TYMPOLE @@ -5987,21 +7097,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/back.4bpp.lz"); const u32 gMonShinyPalette_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/shiny.gbapal.lz"); const u8 gMonIcon_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/anim_front.4bpp.lz"); const u32 gMonPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/normal.gbapal.lz"); const u32 gMonBackPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/back.4bpp.lz"); const u32 gMonShinyPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/shiny.gbapal.lz"); const u8 gMonIcon_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/anim_front.4bpp.lz"); const u32 gMonPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/normal.gbapal.lz"); const u32 gMonBackPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/back.4bpp.lz"); const u32 gMonShinyPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/shiny.gbapal.lz"); const u8 gMonIcon_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TYMPOLE #if P_FAMILY_THROH @@ -6010,7 +7126,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Throh[] = INCBIN_U32("graphics/pokemon/throh/back.4bpp.lz"); const u32 gMonShinyPalette_Throh[] = INCBIN_U32("graphics/pokemon/throh/shiny.gbapal.lz"); const u8 gMonIcon_Throh[] = INCBIN_U8("graphics/pokemon/throh/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Throh[] = INCBIN_U8("graphics/pokemon/throh/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_THROH #if P_FAMILY_SAWK @@ -6019,7 +7137,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/back.4bpp.lz"); const u32 gMonShinyPalette_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/shiny.gbapal.lz"); const u8 gMonIcon_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SAWK #if P_FAMILY_SEWADDLE @@ -6028,21 +7148,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/back.4bpp.lz"); const u32 gMonShinyPalette_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/shiny.gbapal.lz"); const u8 gMonIcon_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/anim_front.4bpp.lz"); const u32 gMonPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/normal.gbapal.lz"); const u32 gMonBackPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/back.4bpp.lz"); const u32 gMonShinyPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/shiny.gbapal.lz"); const u8 gMonIcon_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/anim_front.4bpp.lz"); const u32 gMonPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/normal.gbapal.lz"); const u32 gMonBackPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/back.4bpp.lz"); const u32 gMonShinyPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/shiny.gbapal.lz"); const u8 gMonIcon_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SEWADDLE #if P_FAMILY_VENIPEDE @@ -6051,21 +7177,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/back.4bpp.lz"); const u32 gMonShinyPalette_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/shiny.gbapal.lz"); const u8 gMonIcon_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/anim_front.4bpp.lz"); const u32 gMonPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/normal.gbapal.lz"); const u32 gMonBackPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/back.4bpp.lz"); const u32 gMonShinyPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/shiny.gbapal.lz"); const u8 gMonIcon_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/anim_front.4bpp.lz"); const u32 gMonPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/normal.gbapal.lz"); const u32 gMonBackPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/back.4bpp.lz"); const u32 gMonShinyPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/shiny.gbapal.lz"); const u8 gMonIcon_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VENIPEDE #if P_FAMILY_COTTONEE @@ -6074,14 +7206,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/back.4bpp.lz"); const u32 gMonShinyPalette_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/shiny.gbapal.lz"); const u8 gMonIcon_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/anim_front.4bpp.lz"); const u32 gMonPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/normal.gbapal.lz"); const u32 gMonBackPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/back.4bpp.lz"); const u32 gMonShinyPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/shiny.gbapal.lz"); const u8 gMonIcon_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_COTTONEE #if P_FAMILY_PETILIL @@ -6090,14 +7226,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/back.4bpp.lz"); const u32 gMonShinyPalette_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/shiny.gbapal.lz"); const u8 gMonIcon_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/anim_front.4bpp.lz"); const u32 gMonPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/normal.gbapal.lz"); const u32 gMonBackPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/back.4bpp.lz"); const u32 gMonShinyPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/shiny.gbapal.lz"); const u8 gMonIcon_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/front.4bpp.lz"); @@ -6114,7 +7254,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/back.4bpp.lz"); const u32 gMonShinyPalette_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/shiny.gbapal.lz"); const u8 gMonIcon_BasculinRedStriped[] = INCBIN_U8("graphics/pokemon/basculin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Basculin[] = INCBIN_U8("graphics/pokemon/basculin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/front.4bpp.lz"); const u32 gMonPalette_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/normal.gbapal.lz"); @@ -6134,7 +7276,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); const u32 gMonShinyPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); const u8 gMonIcon_BasculegionMale[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Basculegion[] = INCBIN_U8("graphics/pokemon/basculegion/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/front.4bpp.lz"); const u32 gMonPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/normal.gbapal.lz"); @@ -6150,21 +7294,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/back.4bpp.lz"); const u32 gMonShinyPalette_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/shiny.gbapal.lz"); const u8 gMonIcon_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/anim_front.4bpp.lz"); const u32 gMonPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/normal.gbapal.lz"); const u32 gMonBackPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/back.4bpp.lz"); const u32 gMonShinyPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/shiny.gbapal.lz"); const u8 gMonIcon_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/anim_front.4bpp.lz"); const u32 gMonPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/normal.gbapal.lz"); const u32 gMonBackPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/back.4bpp.lz"); const u32 gMonShinyPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/shiny.gbapal.lz"); const u8 gMonIcon_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SANDILE #if P_FAMILY_DARUMAKA @@ -6173,14 +7323,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/back.4bpp.lz"); const u32 gMonShinyPalette_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/shiny.gbapal.lz"); const u8 gMonIcon_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/anim_front.4bpp.lz"); const u32 gMonPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/normal.gbapal.lz"); const u32 gMonBackPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/back.4bpp.lz"); const u32 gMonShinyPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/shiny.gbapal.lz"); const u8 gMonIcon_DarmanitanStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Darmanitan[] = INCBIN_U8("graphics/pokemon/darmanitan/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/anim_front.4bpp.lz"); const u32 gMonPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/normal.gbapal.lz"); @@ -6215,7 +7369,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/back.4bpp.lz"); const u32 gMonShinyPalette_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/shiny.gbapal.lz"); const u8 gMonIcon_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MARACTUS #if P_FAMILY_DWEBBLE @@ -6224,14 +7380,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/back.4bpp.lz"); const u32 gMonShinyPalette_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/shiny.gbapal.lz"); const u8 gMonIcon_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/anim_front.4bpp.lz"); const u32 gMonPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/normal.gbapal.lz"); const u32 gMonBackPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/back.4bpp.lz"); const u32 gMonShinyPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/shiny.gbapal.lz"); const u8 gMonIcon_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DWEBBLE #if P_FAMILY_SCRAGGY @@ -6240,14 +7400,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/back.4bpp.lz"); const u32 gMonShinyPalette_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/shiny.gbapal.lz"); const u8 gMonIcon_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/anim_front.4bpp.lz"); const u32 gMonPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/normal.gbapal.lz"); const u32 gMonBackPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/back.4bpp.lz"); const u32 gMonShinyPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/shiny.gbapal.lz"); const u8 gMonIcon_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SCRAGGY #if P_FAMILY_SIGILYPH @@ -6256,7 +7420,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/back.4bpp.lz"); const u32 gMonShinyPalette_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/shiny.gbapal.lz"); const u8 gMonIcon_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SIGILYPH #if P_FAMILY_YAMASK @@ -6265,14 +7431,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/back.4bpp.lz"); const u32 gMonShinyPalette_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/shiny.gbapal.lz"); const u8 gMonIcon_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/anim_front.4bpp.lz"); const u32 gMonPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/normal.gbapal.lz"); const u32 gMonBackPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/back.4bpp.lz"); const u32 gMonShinyPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/shiny.gbapal.lz"); const u8 gMonIcon_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/front.4bpp.lz"); @@ -6286,7 +7456,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/back.4bpp.lz"); const u32 gMonShinyPalette_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/shiny.gbapal.lz"); const u8 gMonIcon_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_YAMASK @@ -6296,14 +7468,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/back.4bpp.lz"); const u32 gMonShinyPalette_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/shiny.gbapal.lz"); const u8 gMonIcon_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/anim_front.4bpp.lz"); const u32 gMonPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/normal.gbapal.lz"); const u32 gMonBackPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/back.4bpp.lz"); const u32 gMonShinyPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/shiny.gbapal.lz"); const u8 gMonIcon_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TIRTOUGA #if P_FAMILY_ARCHEN @@ -6312,14 +7488,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Archen[] = INCBIN_U32("graphics/pokemon/archen/back.4bpp.lz"); const u32 gMonShinyPalette_Archen[] = INCBIN_U32("graphics/pokemon/archen/shiny.gbapal.lz"); const u8 gMonIcon_Archen[] = INCBIN_U8("graphics/pokemon/archen/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Archen[] = INCBIN_U8("graphics/pokemon/archen/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/anim_front.4bpp.lz"); const u32 gMonPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/normal.gbapal.lz"); const u32 gMonBackPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/back.4bpp.lz"); const u32 gMonShinyPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/shiny.gbapal.lz"); const u8 gMonIcon_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ARCHEN #if P_FAMILY_TRUBBISH @@ -6328,14 +7508,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/back.4bpp.lz"); const u32 gMonShinyPalette_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/shiny.gbapal.lz"); const u8 gMonIcon_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/anim_front.4bpp.lz"); const u32 gMonPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/normal.gbapal.lz"); const u32 gMonBackPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/back.4bpp.lz"); const u32 gMonShinyPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/shiny.gbapal.lz"); const u8 gMonIcon_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/front.4bpp.lz"); @@ -6352,14 +7536,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/back.4bpp.lz"); const u32 gMonShinyPalette_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/shiny.gbapal.lz"); const u8 gMonIcon_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/anim_front.4bpp.lz"); const u32 gMonPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/normal.gbapal.lz"); const u32 gMonBackPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/back.4bpp.lz"); const u32 gMonShinyPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/shiny.gbapal.lz"); const u8 gMonIcon_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/front.4bpp.lz"); @@ -6382,14 +7570,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/back.4bpp.lz"); const u32 gMonShinyPalette_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/shiny.gbapal.lz"); const u8 gMonIcon_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/anim_front.4bpp.lz"); const u32 gMonPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/normal.gbapal.lz"); const u32 gMonBackPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/back.4bpp.lz"); const u32 gMonShinyPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/shiny.gbapal.lz"); const u8 gMonIcon_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MINCCINO #if P_FAMILY_GOTHITA @@ -6398,21 +7590,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/back.4bpp.lz"); const u32 gMonShinyPalette_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/shiny.gbapal.lz"); const u8 gMonIcon_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/anim_front.4bpp.lz"); const u32 gMonPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/normal.gbapal.lz"); const u32 gMonBackPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/back.4bpp.lz"); const u32 gMonShinyPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/shiny.gbapal.lz"); const u8 gMonIcon_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/anim_front.4bpp.lz"); const u32 gMonPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/normal.gbapal.lz"); const u32 gMonBackPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/back.4bpp.lz"); const u32 gMonShinyPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/shiny.gbapal.lz"); const u8 gMonIcon_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GOTHITA #if P_FAMILY_SOLOSIS @@ -6421,21 +7619,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/back.4bpp.lz"); const u32 gMonShinyPalette_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/shiny.gbapal.lz"); const u8 gMonIcon_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/anim_front.4bpp.lz"); const u32 gMonPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/normal.gbapal.lz"); const u32 gMonBackPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/back.4bpp.lz"); const u32 gMonShinyPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/shiny.gbapal.lz"); const u8 gMonIcon_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/anim_front.4bpp.lz"); const u32 gMonPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/normal.gbapal.lz"); const u32 gMonBackPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/back.4bpp.lz"); const u32 gMonShinyPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/shiny.gbapal.lz"); const u8 gMonIcon_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SOLOSIS #if P_FAMILY_DUCKLETT @@ -6444,14 +7648,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/back.4bpp.lz"); const u32 gMonShinyPalette_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/shiny.gbapal.lz"); const u8 gMonIcon_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/anim_front.4bpp.lz"); const u32 gMonPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/normal.gbapal.lz"); const u32 gMonBackPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/back.4bpp.lz"); const u32 gMonShinyPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/shiny.gbapal.lz"); const u8 gMonIcon_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DUCKLETT #if P_FAMILY_VANILLITE @@ -6460,27 +7668,35 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/back.4bpp.lz"); const u32 gMonShinyPalette_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/shiny.gbapal.lz"); const u8 gMonIcon_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/anim_front.4bpp.lz"); const u32 gMonPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/normal.gbapal.lz"); const u32 gMonBackPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/back.4bpp.lz"); const u32 gMonShinyPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/shiny.gbapal.lz"); const u8 gMonIcon_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/anim_front.4bpp.lz"); const u32 gMonPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/normal.gbapal.lz"); const u32 gMonBackPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/back.4bpp.lz"); const u32 gMonShinyPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/shiny.gbapal.lz"); const u8 gMonIcon_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VANILLITE #if P_FAMILY_DEERLING const u32 gMonFrontPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/anim_front.4bpp.lz"); const u32 gMonBackPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/back.4bpp.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Deerling[] = INCBIN_U8("graphics/pokemon/deerling/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/normal.gbapal.lz"); const u32 gMonShinyPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/shiny.gbapal.lz"); @@ -6503,7 +7719,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/back.4bpp.lz"); const u32 gMonShinyPalette_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/shiny.gbapal.lz"); const u8 gMonIcon_SawsbuckSpring[] = INCBIN_U8("graphics/pokemon/sawsbuck/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sawsbuck[] = INCBIN_U8("graphics/pokemon/sawsbuck/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/front.4bpp.lz"); const u32 gMonPalette_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/normal.gbapal.lz"); @@ -6530,7 +7748,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/back.4bpp.lz"); const u32 gMonShinyPalette_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/shiny.gbapal.lz"); const u8 gMonIcon_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_EMOLGA #if P_FAMILY_KARRABLAST @@ -6539,14 +7759,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/back.4bpp.lz"); const u32 gMonShinyPalette_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/shiny.gbapal.lz"); const u8 gMonIcon_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/anim_front.4bpp.lz"); const u32 gMonPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/normal.gbapal.lz"); const u32 gMonBackPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/back.4bpp.lz"); const u32 gMonShinyPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/shiny.gbapal.lz"); const u8 gMonIcon_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KARRABLAST #if P_FAMILY_FOONGUS @@ -6555,14 +7779,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/back.4bpp.lz"); const u32 gMonShinyPalette_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/shiny.gbapal.lz"); const u8 gMonIcon_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/anim_front.4bpp.lz"); const u32 gMonPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/normal.gbapal.lz"); const u32 gMonBackPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/back.4bpp.lz"); const u32 gMonShinyPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/shiny.gbapal.lz"); const u8 gMonIcon_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FOONGUS #if P_FAMILY_FRILLISH @@ -6571,7 +7799,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/back.4bpp.lz"); const u32 gMonShinyPalette_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/shiny.gbapal.lz"); const u8 gMonIcon_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/anim_frontf.4bpp.lz"); const u32 gMonPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/normalf.gbapal.lz"); @@ -6584,7 +7814,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/back.4bpp.lz"); const u32 gMonShinyPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/shiny.gbapal.lz"); const u8 gMonIcon_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/anim_frontf.4bpp.lz"); const u32 gMonPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/normalf.gbapal.lz"); @@ -6599,7 +7831,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/back.4bpp.lz"); const u32 gMonShinyPalette_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/shiny.gbapal.lz"); const u8 gMonIcon_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ALOMOMOLA #if P_FAMILY_JOLTIK @@ -6608,14 +7842,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/back.4bpp.lz"); const u32 gMonShinyPalette_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/shiny.gbapal.lz"); const u8 gMonIcon_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/anim_front.4bpp.lz"); const u32 gMonPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/normal.gbapal.lz"); const u32 gMonBackPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/back.4bpp.lz"); const u32 gMonShinyPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/shiny.gbapal.lz"); const u8 gMonIcon_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_JOLTIK #if P_FAMILY_FERROSEED @@ -6624,14 +7862,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/back.4bpp.lz"); const u32 gMonShinyPalette_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/shiny.gbapal.lz"); const u8 gMonIcon_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/anim_front.4bpp.lz"); const u32 gMonPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/normal.gbapal.lz"); const u32 gMonBackPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/back.4bpp.lz"); const u32 gMonShinyPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/shiny.gbapal.lz"); const u8 gMonIcon_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FERROSEED #if P_FAMILY_KLINK @@ -6640,21 +7882,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Klink[] = INCBIN_U32("graphics/pokemon/klink/back.4bpp.lz"); const u32 gMonShinyPalette_Klink[] = INCBIN_U32("graphics/pokemon/klink/shiny.gbapal.lz"); const u8 gMonIcon_Klink[] = INCBIN_U8("graphics/pokemon/klink/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Klink[] = INCBIN_U8("graphics/pokemon/klink/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/anim_front.4bpp.lz"); const u32 gMonPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/normal.gbapal.lz"); const u32 gMonBackPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/back.4bpp.lz"); const u32 gMonShinyPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/shiny.gbapal.lz"); const u8 gMonIcon_Klang[] = INCBIN_U8("graphics/pokemon/klang/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Klang[] = INCBIN_U8("graphics/pokemon/klang/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/anim_front.4bpp.lz"); const u32 gMonPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/normal.gbapal.lz"); const u32 gMonBackPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/back.4bpp.lz"); const u32 gMonShinyPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/shiny.gbapal.lz"); const u8 gMonIcon_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KLINK #if P_FAMILY_TYNAMO @@ -6663,21 +7911,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/back.4bpp.lz"); const u32 gMonShinyPalette_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/shiny.gbapal.lz"); const u8 gMonIcon_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/anim_front.4bpp.lz"); const u32 gMonPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/normal.gbapal.lz"); const u32 gMonBackPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/back.4bpp.lz"); const u32 gMonShinyPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/shiny.gbapal.lz"); const u8 gMonIcon_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/anim_front.4bpp.lz"); const u32 gMonPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/normal.gbapal.lz"); const u32 gMonBackPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/back.4bpp.lz"); const u32 gMonShinyPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/shiny.gbapal.lz"); const u8 gMonIcon_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TYNAMO #if P_FAMILY_ELGYEM @@ -6686,14 +7940,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/back.4bpp.lz"); const u32 gMonShinyPalette_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/shiny.gbapal.lz"); const u8 gMonIcon_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/anim_front.4bpp.lz"); const u32 gMonPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/normal.gbapal.lz"); const u32 gMonBackPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/back.4bpp.lz"); const u32 gMonShinyPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/shiny.gbapal.lz"); const u8 gMonIcon_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ELGYEM #if P_FAMILY_LITWICK @@ -6702,21 +7960,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/back.4bpp.lz"); const u32 gMonShinyPalette_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/shiny.gbapal.lz"); const u8 gMonIcon_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/anim_front.4bpp.lz"); const u32 gMonPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/normal.gbapal.lz"); const u32 gMonBackPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/back.4bpp.lz"); const u32 gMonShinyPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/shiny.gbapal.lz"); const u8 gMonIcon_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/anim_front.4bpp.lz"); const u32 gMonPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/normal.gbapal.lz"); const u32 gMonBackPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/back.4bpp.lz"); const u32 gMonShinyPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/shiny.gbapal.lz"); const u8 gMonIcon_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LITWICK #if P_FAMILY_AXEW @@ -6725,21 +7989,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Axew[] = INCBIN_U32("graphics/pokemon/axew/back.4bpp.lz"); const u32 gMonShinyPalette_Axew[] = INCBIN_U32("graphics/pokemon/axew/shiny.gbapal.lz"); const u8 gMonIcon_Axew[] = INCBIN_U8("graphics/pokemon/axew/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Axew[] = INCBIN_U8("graphics/pokemon/axew/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/anim_front.4bpp.lz"); const u32 gMonPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/normal.gbapal.lz"); const u32 gMonBackPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/back.4bpp.lz"); const u32 gMonShinyPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/shiny.gbapal.lz"); const u8 gMonIcon_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/anim_front.4bpp.lz"); const u32 gMonPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/normal.gbapal.lz"); const u32 gMonBackPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/back.4bpp.lz"); const u32 gMonShinyPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/shiny.gbapal.lz"); const u8 gMonIcon_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_AXEW #if P_FAMILY_CUBCHOO @@ -6748,14 +8018,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/back.4bpp.lz"); const u32 gMonShinyPalette_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/shiny.gbapal.lz"); const u8 gMonIcon_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/anim_front.4bpp.lz"); const u32 gMonPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/normal.gbapal.lz"); const u32 gMonBackPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/back.4bpp.lz"); const u32 gMonShinyPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/shiny.gbapal.lz"); const u8 gMonIcon_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CUBCHOO #if P_FAMILY_CRYOGONAL @@ -6764,7 +8038,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/back.4bpp.lz"); const u32 gMonShinyPalette_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/shiny.gbapal.lz"); const u8 gMonIcon_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CRYOGONAL #if P_FAMILY_SHELMET @@ -6773,14 +8049,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/back.4bpp.lz"); const u32 gMonShinyPalette_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/shiny.gbapal.lz"); const u8 gMonIcon_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/anim_front.4bpp.lz"); const u32 gMonPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/normal.gbapal.lz"); const u32 gMonBackPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/back.4bpp.lz"); const u32 gMonShinyPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/shiny.gbapal.lz"); const u8 gMonIcon_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHELMET #if P_FAMILY_STUNFISK @@ -6789,7 +8069,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/back.4bpp.lz"); const u32 gMonShinyPalette_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/shiny.gbapal.lz"); const u8 gMonIcon_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GALARIAN_FORMS const u32 gMonFrontPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/front.4bpp.lz"); @@ -6806,14 +8088,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/back.4bpp.lz"); const u32 gMonShinyPalette_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/shiny.gbapal.lz"); const u8 gMonIcon_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/anim_front.4bpp.lz"); const u32 gMonPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/normal.gbapal.lz"); const u32 gMonBackPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/back.4bpp.lz"); const u32 gMonShinyPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/shiny.gbapal.lz"); const u8 gMonIcon_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MIENFOO #if P_FAMILY_DRUDDIGON @@ -6822,7 +8108,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/back.4bpp.lz"); const u32 gMonShinyPalette_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/shiny.gbapal.lz"); const u8 gMonIcon_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRUDDIGON #if P_FAMILY_GOLETT @@ -6831,14 +8119,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Golett[] = INCBIN_U32("graphics/pokemon/golett/back.4bpp.lz"); const u32 gMonShinyPalette_Golett[] = INCBIN_U32("graphics/pokemon/golett/shiny.gbapal.lz"); const u8 gMonIcon_Golett[] = INCBIN_U8("graphics/pokemon/golett/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golett[] = INCBIN_U8("graphics/pokemon/golett/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/anim_front.4bpp.lz"); const u32 gMonPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/normal.gbapal.lz"); const u32 gMonBackPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/back.4bpp.lz"); const u32 gMonShinyPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/shiny.gbapal.lz"); const u8 gMonIcon_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GOLETT #if P_FAMILY_PAWNIARD @@ -6847,14 +8139,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/back.4bpp.lz"); const u32 gMonShinyPalette_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/shiny.gbapal.lz"); const u8 gMonIcon_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/anim_front.4bpp.lz"); const u32 gMonPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/normal.gbapal.lz"); const u32 gMonBackPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/back.4bpp.lz"); const u32 gMonShinyPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/shiny.gbapal.lz"); const u8 gMonIcon_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GEN_9_CROSS_EVOS const u32 gMonFrontPic_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/front.4bpp.lz"); @@ -6862,7 +8158,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/back.4bpp.lz"); const u32 gMonShinyPalette_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/shiny.gbapal.lz"); const u8 gMonIcon_Kingambit[] = INCBIN_U8("graphics/pokemon/kingambit/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Kingambit[] = INCBIN_U8("graphics/pokemon/kingambit/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_PAWNIARD @@ -6872,7 +8170,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/back.4bpp.lz"); const u32 gMonShinyPalette_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/shiny.gbapal.lz"); const u8 gMonIcon_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BOUFFALANT #if P_FAMILY_RUFFLET @@ -6881,14 +8181,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/back.4bpp.lz"); const u32 gMonShinyPalette_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/shiny.gbapal.lz"); const u8 gMonIcon_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/anim_front.4bpp.lz"); const u32 gMonPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/normal.gbapal.lz"); const u32 gMonBackPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/back.4bpp.lz"); const u32 gMonShinyPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/shiny.gbapal.lz"); const u8 gMonIcon_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/front.4bpp.lz"); @@ -6905,14 +8209,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/back.4bpp.lz"); const u32 gMonShinyPalette_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/shiny.gbapal.lz"); const u8 gMonIcon_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/anim_front.4bpp.lz"); const u32 gMonPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/normal.gbapal.lz"); const u32 gMonBackPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/back.4bpp.lz"); const u32 gMonShinyPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/shiny.gbapal.lz"); const u8 gMonIcon_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VULLABY #if P_FAMILY_HEATMOR @@ -6921,7 +8229,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/back.4bpp.lz"); const u32 gMonShinyPalette_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/shiny.gbapal.lz"); const u8 gMonIcon_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HEATMOR #if P_FAMILY_DURANT @@ -6930,7 +8240,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Durant[] = INCBIN_U32("graphics/pokemon/durant/back.4bpp.lz"); const u32 gMonShinyPalette_Durant[] = INCBIN_U32("graphics/pokemon/durant/shiny.gbapal.lz"); const u8 gMonIcon_Durant[] = INCBIN_U8("graphics/pokemon/durant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Durant[] = INCBIN_U8("graphics/pokemon/durant/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DURANT #if P_FAMILY_DEINO @@ -6939,21 +8251,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Deino[] = INCBIN_U32("graphics/pokemon/deino/back.4bpp.lz"); const u32 gMonShinyPalette_Deino[] = INCBIN_U32("graphics/pokemon/deino/shiny.gbapal.lz"); const u8 gMonIcon_Deino[] = INCBIN_U8("graphics/pokemon/deino/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Deino[] = INCBIN_U8("graphics/pokemon/deino/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/anim_front.4bpp.lz"); const u32 gMonPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/normal.gbapal.lz"); const u32 gMonBackPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/back.4bpp.lz"); const u32 gMonShinyPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/shiny.gbapal.lz"); const u8 gMonIcon_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/anim_front.4bpp.lz"); const u32 gMonPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/normal.gbapal.lz"); const u32 gMonBackPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/back.4bpp.lz"); const u32 gMonShinyPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/shiny.gbapal.lz"); const u8 gMonIcon_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DEINO #if P_FAMILY_LARVESTA @@ -6962,14 +8280,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/back.4bpp.lz"); const u32 gMonShinyPalette_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/shiny.gbapal.lz"); const u8 gMonIcon_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/anim_front.4bpp.lz"); const u32 gMonPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/normal.gbapal.lz"); const u32 gMonBackPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/back.4bpp.lz"); const u32 gMonShinyPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/shiny.gbapal.lz"); const u8 gMonIcon_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LARVESTA #if P_FAMILY_COBALION @@ -6978,7 +8300,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/back.4bpp.lz"); const u32 gMonShinyPalette_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/shiny.gbapal.lz"); const u8 gMonIcon_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_COBALION #if P_FAMILY_TERRAKION @@ -6987,7 +8311,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/back.4bpp.lz"); const u32 gMonShinyPalette_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/shiny.gbapal.lz"); const u8 gMonIcon_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TERRAKION #if P_FAMILY_VIRIZION @@ -6996,7 +8322,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/back.4bpp.lz"); const u32 gMonShinyPalette_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/shiny.gbapal.lz"); const u8 gMonIcon_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VIRIZION #if P_FAMILY_TORNADUS @@ -7005,7 +8333,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/back.4bpp.lz"); const u32 gMonShinyPalette_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/shiny.gbapal.lz"); const u8 gMonIcon_TornadusIncarnate[] = INCBIN_U8("graphics/pokemon/tornadus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tornadus[] = INCBIN_U8("graphics/pokemon/tornadus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/anim_front.4bpp.lz"); const u32 gMonPalette_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/normal.gbapal.lz"); @@ -7020,7 +8350,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/back.4bpp.lz"); const u32 gMonShinyPalette_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/shiny.gbapal.lz"); const u8 gMonIcon_ThundurusIncarnate[] = INCBIN_U8("graphics/pokemon/thundurus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Thundurus[] = INCBIN_U8("graphics/pokemon/thundurus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/anim_front.4bpp.lz"); const u32 gMonPalette_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/normal.gbapal.lz"); @@ -7035,7 +8367,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/back.4bpp.lz"); const u32 gMonShinyPalette_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/shiny.gbapal.lz"); const u8 gMonIcon_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_RESHIRAM #if P_FAMILY_ZEKROM @@ -7044,7 +8378,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/back.4bpp.lz"); const u32 gMonShinyPalette_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/shiny.gbapal.lz"); const u8 gMonIcon_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ZEKROM #if P_FAMILY_LANDORUS @@ -7053,7 +8389,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/back.4bpp.lz"); const u32 gMonShinyPalette_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/shiny.gbapal.lz"); const u8 gMonIcon_LandorusIncarnate[] = INCBIN_U8("graphics/pokemon/landorus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Landorus[] = INCBIN_U8("graphics/pokemon/landorus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/anim_front.4bpp.lz"); const u32 gMonPalette_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/normal.gbapal.lz"); @@ -7068,7 +8406,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/back.4bpp.lz"); const u32 gMonShinyPalette_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/shiny.gbapal.lz"); const u8 gMonIcon_EnamorusIncarnate[] = INCBIN_U8("graphics/pokemon/enamorus/icon.4bpp"); +#if P_FOOTPRINTS //const u8 gMonFootprint_Enamorus[] = INCBIN_U8("graphics/pokemon/enamorus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/front.4bpp.lz"); const u32 gMonPalette_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/normal.gbapal.lz"); @@ -7083,7 +8423,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/back.4bpp.lz"); const u32 gMonShinyPalette_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/shiny.gbapal.lz"); const u8 gMonIcon_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_FUSION_FORMS const u32 gMonFrontPic_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/anim_front.4bpp.lz"); @@ -7106,7 +8448,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/back.4bpp.lz"); const u32 gMonShinyPalette_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/shiny.gbapal.lz"); const u8 gMonIcon_KeldeoOrdinary[] = INCBIN_U8("graphics/pokemon/keldeo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Keldeo[] = INCBIN_U8("graphics/pokemon/keldeo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/front.4bpp.lz"); const u32 gMonPalette_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/normal.gbapal.lz"); @@ -7121,7 +8465,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/back.4bpp.lz"); const u32 gMonShinyPalette_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/shiny.gbapal.lz"); const u8 gMonIcon_MeloettaAria[] = INCBIN_U8("graphics/pokemon/meloetta/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meloetta[] = INCBIN_U8("graphics/pokemon/meloetta/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/front.4bpp.lz"); const u32 gMonPalette_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/normal.gbapal.lz"); @@ -7136,7 +8482,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/back.4bpp.lz"); const u32 gMonShinyPalette_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/shiny.gbapal.lz"); const u8 gMonIcon_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/normal.gbapal.lz"); const u32 gMonShinyPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/shiny.gbapal.lz"); @@ -7157,21 +8505,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/back.4bpp.lz"); const u32 gMonShinyPalette_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/shiny.gbapal.lz"); const u8 gMonIcon_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/anim_front.4bpp.lz"); const u32 gMonPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/normal.gbapal.lz"); const u32 gMonBackPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/back.4bpp.lz"); const u32 gMonShinyPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/shiny.gbapal.lz"); const u8 gMonIcon_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/anim_front.4bpp.lz"); const u32 gMonPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/normal.gbapal.lz"); const u32 gMonBackPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/back.4bpp.lz"); const u32 gMonShinyPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/shiny.gbapal.lz"); const u8 gMonIcon_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHESPIN #if P_FAMILY_FENNEKIN @@ -7180,21 +8534,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/back.4bpp.lz"); const u32 gMonShinyPalette_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/shiny.gbapal.lz"); const u8 gMonIcon_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/anim_front.4bpp.lz"); const u32 gMonPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/normal.gbapal.lz"); const u32 gMonBackPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/back.4bpp.lz"); const u32 gMonShinyPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/shiny.gbapal.lz"); const u8 gMonIcon_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/anim_front.4bpp.lz"); const u32 gMonPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/normal.gbapal.lz"); const u32 gMonBackPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/back.4bpp.lz"); const u32 gMonShinyPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/shiny.gbapal.lz"); const u8 gMonIcon_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FENNEKIN #if P_FAMILY_FROAKIE @@ -7203,21 +8563,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/back.4bpp.lz"); const u32 gMonShinyPalette_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/shiny.gbapal.lz"); const u8 gMonIcon_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/anim_front.4bpp.lz"); const u32 gMonPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/normal.gbapal.lz"); const u32 gMonBackPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/back.4bpp.lz"); const u32 gMonShinyPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/shiny.gbapal.lz"); const u8 gMonIcon_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/anim_front.4bpp.lz"); const u32 gMonPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/normal.gbapal.lz"); const u32 gMonBackPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/back.4bpp.lz"); const u32 gMonShinyPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/shiny.gbapal.lz"); const u8 gMonIcon_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/anim_front.4bpp.lz"); const u32 gMonPalette_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/normal.gbapal.lz"); @@ -7232,14 +8598,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/back.4bpp.lz"); const u32 gMonShinyPalette_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/shiny.gbapal.lz"); const u8 gMonIcon_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/anim_front.4bpp.lz"); const u32 gMonPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/normal.gbapal.lz"); const u32 gMonBackPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/back.4bpp.lz"); const u32 gMonShinyPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/shiny.gbapal.lz"); const u8 gMonIcon_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BUNNELBY #if P_FAMILY_FLETCHLING @@ -7248,21 +8618,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/back.4bpp.lz"); const u32 gMonShinyPalette_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/shiny.gbapal.lz"); const u8 gMonIcon_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/anim_front.4bpp.lz"); const u32 gMonPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/normal.gbapal.lz"); const u32 gMonBackPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/back.4bpp.lz"); const u32 gMonShinyPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/shiny.gbapal.lz"); const u8 gMonIcon_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/anim_front.4bpp.lz"); const u32 gMonPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/normal.gbapal.lz"); const u32 gMonBackPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/back.4bpp.lz"); const u32 gMonShinyPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/shiny.gbapal.lz"); const u8 gMonIcon_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FLETCHLING #if P_FAMILY_SCATTERBUG @@ -7271,21 +8647,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/back.4bpp.lz"); const u32 gMonShinyPalette_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/shiny.gbapal.lz"); const u8 gMonIcon_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/anim_front.4bpp.lz"); const u32 gMonPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/normal.gbapal.lz"); const u32 gMonBackPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/back.4bpp.lz"); const u32 gMonShinyPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/shiny.gbapal.lz"); const u8 gMonIcon_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/anim_front.4bpp.lz"); const u32 gMonPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/normal.gbapal.lz"); const u32 gMonBackPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/back.4bpp.lz"); const u32 gMonShinyPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/shiny.gbapal.lz"); const u8 gMonIcon_VivillonIcySnow[] = INCBIN_U8("graphics/pokemon/vivillon/meadow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vivillon[] = INCBIN_U8("graphics/pokemon/vivillon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/anim_front.4bpp.lz"); const u32 gMonPalette_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/normal.gbapal.lz"); @@ -7408,14 +8790,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/back.4bpp.lz"); const u32 gMonShinyPalette_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/shiny.gbapal.lz"); const u8 gMonIcon_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/anim_front.4bpp.lz"); const u32 gMonPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/normal.gbapal.lz"); const u32 gMonBackPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/back.4bpp.lz"); const u32 gMonShinyPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/shiny.gbapal.lz"); const u8 gMonIcon_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/backf.4bpp.lz"); @@ -7425,7 +8811,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar #if P_FAMILY_FLABEBE const u32 gMonFrontPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/anim_front.4bpp.lz"); const u32 gMonBackPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/back.4bpp.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Flabebe[] = INCBIN_U8("graphics/pokemon/flabebe/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/normal.gbapal.lz"); const u32 gMonShinyPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/shiny.gbapal.lz"); @@ -7449,7 +8837,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonFrontPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/anim_front.4bpp.lz"); const u32 gMonBackPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/back.4bpp.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Floette[] = INCBIN_U8("graphics/pokemon/floette/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/normal.gbapal.lz"); const u32 gMonShinyPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/shiny.gbapal.lz"); @@ -7479,7 +8869,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonFrontPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/anim_front.4bpp.lz"); const u32 gMonBackPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/back.4bpp.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Florges[] = INCBIN_U8("graphics/pokemon/florges/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/normal.gbapal.lz"); const u32 gMonShinyPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/shiny.gbapal.lz"); @@ -7508,14 +8900,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/back.4bpp.lz"); const u32 gMonShinyPalette_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/shiny.gbapal.lz"); const u8 gMonIcon_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/anim_front.4bpp.lz"); const u32 gMonPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/normal.gbapal.lz"); const u32 gMonBackPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/back.4bpp.lz"); const u32 gMonShinyPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/shiny.gbapal.lz"); const u8 gMonIcon_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKIDDO #if P_FAMILY_PANCHAM @@ -7524,14 +8920,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/back.4bpp.lz"); const u32 gMonShinyPalette_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/shiny.gbapal.lz"); const u8 gMonIcon_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/anim_front.4bpp.lz"); const u32 gMonPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/normal.gbapal.lz"); const u32 gMonBackPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/back.4bpp.lz"); const u32 gMonShinyPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/shiny.gbapal.lz"); const u8 gMonIcon_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PANCHAM #if P_FAMILY_FURFROU @@ -7540,7 +8940,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/back.4bpp.lz"); const u32 gMonShinyPalette_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/shiny.gbapal.lz"); const u8 gMonIcon_FurfrouNatural[] = INCBIN_U8("graphics/pokemon/furfrou/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Furfrou[] = INCBIN_U8("graphics/pokemon/furfrou/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/anim_front.4bpp.lz"); const u32 gMonPalette_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/normal.gbapal.lz"); @@ -7603,14 +9005,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/back.4bpp.lz"); const u32 gMonShinyPalette_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/shiny.gbapal.lz"); const u8 gMonIcon_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/anim_front.4bpp.lz"); const u32 gMonPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/normal.gbapal.lz"); const u32 gMonBackPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/back.4bpp.lz"); const u32 gMonShinyPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/shiny.gbapal.lz"); const u8 gMonIcon_MeowsticMale[] = INCBIN_U8("graphics/pokemon/meowstic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meowstic[] = INCBIN_U8("graphics/pokemon/meowstic/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/anim_front.4bpp.lz"); const u32 gMonPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/normal.gbapal.lz"); @@ -7625,21 +9031,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/back.4bpp.lz"); const u32 gMonShinyPalette_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/shiny.gbapal.lz"); const u8 gMonIcon_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/anim_front.4bpp.lz"); const u32 gMonPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/normal.gbapal.lz"); const u32 gMonBackPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/back.4bpp.lz"); const u32 gMonShinyPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/shiny.gbapal.lz"); const u8 gMonIcon_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/anim_front.4bpp.lz"); const u32 gMonPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/normal.gbapal.lz"); const u32 gMonBackPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/back.4bpp.lz"); const u32 gMonShinyPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/shiny.gbapal.lz"); const u8 gMonIcon_AegislashShield[] = INCBIN_U8("graphics/pokemon/aegislash/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aegislash[] = INCBIN_U8("graphics/pokemon/aegislash/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/anim_front.4bpp.lz"); const u32 gMonPalette_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/normal.gbapal.lz"); @@ -7654,14 +9066,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/back.4bpp.lz"); const u32 gMonShinyPalette_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/shiny.gbapal.lz"); const u8 gMonIcon_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/anim_front.4bpp.lz"); const u32 gMonPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/normal.gbapal.lz"); const u32 gMonBackPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/back.4bpp.lz"); const u32 gMonShinyPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/shiny.gbapal.lz"); const u8 gMonIcon_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPRITZEE #if P_FAMILY_SWIRLIX @@ -7670,14 +9086,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/back.4bpp.lz"); const u32 gMonShinyPalette_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/shiny.gbapal.lz"); const u8 gMonIcon_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/anim_front.4bpp.lz"); const u32 gMonPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/normal.gbapal.lz"); const u32 gMonBackPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/back.4bpp.lz"); const u32 gMonShinyPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/shiny.gbapal.lz"); const u8 gMonIcon_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SWIRLIX #if P_FAMILY_INKAY @@ -7686,14 +9106,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/back.4bpp.lz"); const u32 gMonShinyPalette_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/shiny.gbapal.lz"); const u8 gMonIcon_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/anim_front.4bpp.lz"); const u32 gMonPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/normal.gbapal.lz"); const u32 gMonBackPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/back.4bpp.lz"); const u32 gMonShinyPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/shiny.gbapal.lz"); const u8 gMonIcon_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_INKAY #if P_FAMILY_BINACLE @@ -7702,14 +9126,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/back.4bpp.lz"); const u32 gMonShinyPalette_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/shiny.gbapal.lz"); const u8 gMonIcon_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/anim_front.4bpp.lz"); const u32 gMonPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/normal.gbapal.lz"); const u32 gMonBackPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/back.4bpp.lz"); const u32 gMonShinyPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/shiny.gbapal.lz"); const u8 gMonIcon_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BINACLE #if P_FAMILY_SKRELP @@ -7718,14 +9146,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/back.4bpp.lz"); const u32 gMonShinyPalette_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/shiny.gbapal.lz"); const u8 gMonIcon_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/anim_front.4bpp.lz"); const u32 gMonPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/normal.gbapal.lz"); const u32 gMonBackPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/back.4bpp.lz"); const u32 gMonShinyPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/shiny.gbapal.lz"); const u8 gMonIcon_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKRELP #if P_FAMILY_CLAUNCHER @@ -7734,14 +9166,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/back.4bpp.lz"); const u32 gMonShinyPalette_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/shiny.gbapal.lz"); const u8 gMonIcon_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/anim_front.4bpp.lz"); const u32 gMonPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/normal.gbapal.lz"); const u32 gMonBackPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/back.4bpp.lz"); const u32 gMonShinyPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/shiny.gbapal.lz"); const u8 gMonIcon_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CLAUNCHER #if P_FAMILY_HELIOPTILE @@ -7750,14 +9186,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/back.4bpp.lz"); const u32 gMonShinyPalette_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/shiny.gbapal.lz"); const u8 gMonIcon_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/anim_front.4bpp.lz"); const u32 gMonPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/normal.gbapal.lz"); const u32 gMonBackPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/back.4bpp.lz"); const u32 gMonShinyPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/shiny.gbapal.lz"); const u8 gMonIcon_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HELIOPTILE #if P_FAMILY_TYRUNT @@ -7766,14 +9206,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/back.4bpp.lz"); const u32 gMonShinyPalette_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/shiny.gbapal.lz"); const u8 gMonIcon_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/anim_front.4bpp.lz"); const u32 gMonPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/normal.gbapal.lz"); const u32 gMonBackPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/back.4bpp.lz"); const u32 gMonShinyPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/shiny.gbapal.lz"); const u8 gMonIcon_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TYRUNT #if P_FAMILY_AMAURA @@ -7782,14 +9226,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/back.4bpp.lz"); const u32 gMonShinyPalette_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/shiny.gbapal.lz"); const u8 gMonIcon_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/anim_front.4bpp.lz"); const u32 gMonPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/normal.gbapal.lz"); const u32 gMonBackPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/back.4bpp.lz"); const u32 gMonShinyPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/shiny.gbapal.lz"); const u8 gMonIcon_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_AMAURA #if P_FAMILY_HAWLUCHA @@ -7798,7 +9246,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/back.4bpp.lz"); const u32 gMonShinyPalette_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/shiny.gbapal.lz"); const u8 gMonIcon_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_HAWLUCHA #if P_FAMILY_DEDENNE @@ -7807,7 +9257,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/back.4bpp.lz"); const u32 gMonShinyPalette_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/shiny.gbapal.lz"); const u8 gMonIcon_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DEDENNE #if P_FAMILY_CARBINK @@ -7816,7 +9268,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/back.4bpp.lz"); const u32 gMonShinyPalette_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/shiny.gbapal.lz"); const u8 gMonIcon_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CARBINK #if P_FAMILY_GOOMY @@ -7825,14 +9279,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/back.4bpp.lz"); const u32 gMonShinyPalette_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/shiny.gbapal.lz"); const u8 gMonIcon_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/anim_front.4bpp.lz"); const u32 gMonPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/normal.gbapal.lz"); const u32 gMonBackPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/back.4bpp.lz"); const u32 gMonShinyPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/shiny.gbapal.lz"); const u8 gMonIcon_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/front.4bpp.lz"); @@ -7847,7 +9305,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/back.4bpp.lz"); const u32 gMonShinyPalette_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/shiny.gbapal.lz"); const u8 gMonIcon_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/front.4bpp.lz"); @@ -7864,7 +9324,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/back.4bpp.lz"); const u32 gMonShinyPalette_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/shiny.gbapal.lz"); const u8 gMonIcon_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KLEFKI #if P_FAMILY_PHANTUMP @@ -7873,21 +9335,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/back.4bpp.lz"); const u32 gMonShinyPalette_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/shiny.gbapal.lz"); const u8 gMonIcon_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/anim_front.4bpp.lz"); const u32 gMonPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/normal.gbapal.lz"); const u32 gMonBackPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/back.4bpp.lz"); const u32 gMonShinyPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/shiny.gbapal.lz"); const u8 gMonIcon_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PHANTUMP #if P_FAMILY_PUMPKABOO const u32 gMonPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/normal.gbapal.lz"); const u32 gMonShinyPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/shiny.gbapal.lz"); const u8 gMonIcon_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/anim_front.4bpp.lz"); const u32 gMonBackPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/back.4bpp.lz"); @@ -7904,7 +9372,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/normal.gbapal.lz"); const u32 gMonShinyPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/shiny.gbapal.lz"); const u8 gMonIcon_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/anim_front.4bpp.lz"); const u32 gMonBackPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/back.4bpp.lz"); @@ -7925,14 +9395,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/back.4bpp.lz"); const u32 gMonShinyPalette_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/shiny.gbapal.lz"); const u8 gMonIcon_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/anim_front.4bpp.lz"); const u32 gMonPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/normal.gbapal.lz"); const u32 gMonBackPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/back.4bpp.lz"); const u32 gMonShinyPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/shiny.gbapal.lz"); const u8 gMonIcon_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/front.4bpp.lz"); @@ -7949,14 +9423,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/back.4bpp.lz"); const u32 gMonShinyPalette_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/shiny.gbapal.lz"); const u8 gMonIcon_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/anim_front.4bpp.lz"); const u32 gMonPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/normal.gbapal.lz"); const u32 gMonBackPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/back.4bpp.lz"); const u32 gMonShinyPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/shiny.gbapal.lz"); const u8 gMonIcon_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NOIBAT #if P_FAMILY_XERNEAS @@ -7965,7 +9443,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/back.4bpp.lz"); const u32 gMonShinyPalette_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/shiny.gbapal.lz"); const u8 gMonIcon_XerneasNeutral[] = INCBIN_U8("graphics/pokemon/xerneas/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Xerneas[] = INCBIN_U8("graphics/pokemon/xerneas/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/anim_front.4bpp.lz"); const u32 gMonPalette_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/normal.gbapal.lz"); @@ -7980,7 +9460,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/back.4bpp.lz"); const u32 gMonShinyPalette_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/shiny.gbapal.lz"); const u8 gMonIcon_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_YVELTAL #if P_FAMILY_ZYGARDE @@ -7989,7 +9471,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/back.4bpp.lz"); const u32 gMonShinyPalette_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/shiny.gbapal.lz"); const u8 gMonIcon_Zygarde50[] = INCBIN_U8("graphics/pokemon/zygarde/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zygarde[] = INCBIN_U8("graphics/pokemon/zygarde/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/anim_front.4bpp.lz"); const u32 gMonPalette_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/normal.gbapal.lz"); @@ -8010,7 +9494,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/back.4bpp.lz"); const u32 gMonShinyPalette_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/shiny.gbapal.lz"); const u8 gMonIcon_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/front.4bpp.lz"); @@ -8027,7 +9513,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/back.4bpp.lz"); const u32 gMonShinyPalette_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/shiny.gbapal.lz"); const u8 gMonIcon_HoopaConfined[] = INCBIN_U8("graphics/pokemon/hoopa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hoopa[] = INCBIN_U8("graphics/pokemon/hoopa/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/anim_front.4bpp.lz"); const u32 gMonPalette_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/normal.gbapal.lz"); @@ -8042,7 +9530,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/back.4bpp.lz"); const u32 gMonShinyPalette_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/shiny.gbapal.lz"); const u8 gMonIcon_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VOLCANION #if P_FAMILY_ROWLET @@ -8051,21 +9541,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/back.4bpp.lz"); const u32 gMonShinyPalette_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/shiny.gbapal.lz"); const u8 gMonIcon_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/anim_front.4bpp.lz"); const u32 gMonPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/normal.gbapal.lz"); const u32 gMonBackPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/back.4bpp.lz"); const u32 gMonShinyPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/shiny.gbapal.lz"); const u8 gMonIcon_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/anim_front.4bpp.lz"); const u32 gMonPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/normal.gbapal.lz"); const u32 gMonBackPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/back.4bpp.lz"); const u32 gMonShinyPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/shiny.gbapal.lz"); const u8 gMonIcon_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_HISUIAN_FORMS const u32 gMonFrontPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/front.4bpp.lz"); @@ -8082,21 +9578,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/back.4bpp.lz"); const u32 gMonShinyPalette_Litten[] = INCBIN_U32("graphics/pokemon/litten/shiny.gbapal.lz"); const u8 gMonIcon_Litten[] = INCBIN_U8("graphics/pokemon/litten/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Litten[] = INCBIN_U8("graphics/pokemon/litten/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/front.4bpp.lz"); const u32 gMonPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/normal.gbapal.lz"); const u32 gMonBackPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/back.4bpp.lz"); const u32 gMonShinyPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/shiny.gbapal.lz"); const u8 gMonIcon_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/front.4bpp.lz"); const u32 gMonPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/normal.gbapal.lz"); const u32 gMonBackPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/back.4bpp.lz"); const u32 gMonShinyPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/shiny.gbapal.lz"); const u8 gMonIcon_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_LITTEN #if P_FAMILY_POPPLIO @@ -8105,21 +9607,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/back.4bpp.lz"); const u32 gMonShinyPalette_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/shiny.gbapal.lz"); const u8 gMonIcon_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/front.4bpp.lz"); const u32 gMonPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/normal.gbapal.lz"); const u32 gMonBackPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/back.4bpp.lz"); const u32 gMonShinyPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/shiny.gbapal.lz"); const u8 gMonIcon_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/front.4bpp.lz"); const u32 gMonPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/normal.gbapal.lz"); const u32 gMonBackPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/back.4bpp.lz"); const u32 gMonShinyPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/shiny.gbapal.lz"); const u8 gMonIcon_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_POPPLIO #if P_FAMILY_PIKIPEK @@ -8128,21 +9636,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/back.4bpp.lz"); const u32 gMonShinyPalette_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/shiny.gbapal.lz"); const u8 gMonIcon_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/anim_front.4bpp.lz"); const u32 gMonPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/normal.gbapal.lz"); const u32 gMonBackPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/back.4bpp.lz"); const u32 gMonShinyPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/shiny.gbapal.lz"); const u8 gMonIcon_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/anim_front.4bpp.lz"); const u32 gMonPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/normal.gbapal.lz"); const u32 gMonBackPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/back.4bpp.lz"); const u32 gMonShinyPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/shiny.gbapal.lz"); const u8 gMonIcon_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PIKIPEK #if P_FAMILY_YUNGOOS @@ -8151,14 +9665,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/back.4bpp.lz"); const u32 gMonShinyPalette_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/shiny.gbapal.lz"); const u8 gMonIcon_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/front.4bpp.lz"); const u32 gMonPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/normal.gbapal.lz"); const u32 gMonBackPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/back.4bpp.lz"); const u32 gMonShinyPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/shiny.gbapal.lz"); const u8 gMonIcon_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_YUNGOOS #if P_FAMILY_GRUBBIN @@ -8167,21 +9685,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/back.4bpp.lz"); const u32 gMonShinyPalette_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/shiny.gbapal.lz"); const u8 gMonIcon_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/anim_front.4bpp.lz"); const u32 gMonPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/normal.gbapal.lz"); const u32 gMonBackPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/back.4bpp.lz"); const u32 gMonShinyPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/shiny.gbapal.lz"); const u8 gMonIcon_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/anim_front.4bpp.lz"); const u32 gMonPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/normal.gbapal.lz"); const u32 gMonBackPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/back.4bpp.lz"); const u32 gMonShinyPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/shiny.gbapal.lz"); const u8 gMonIcon_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GRUBBIN #if P_FAMILY_CRABRAWLER @@ -8190,14 +9714,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/back.4bpp.lz"); const u32 gMonShinyPalette_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/shiny.gbapal.lz"); const u8 gMonIcon_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/front.4bpp.lz"); const u32 gMonPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/normal.gbapal.lz"); const u32 gMonBackPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/back.4bpp.lz"); const u32 gMonShinyPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/shiny.gbapal.lz"); const u8 gMonIcon_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CRABRAWLER #if P_FAMILY_ORICORIO @@ -8206,7 +9734,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/back.4bpp.lz"); const u32 gMonShinyPalette_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/shiny.gbapal.lz"); const u8 gMonIcon_OricorioBaile[] = INCBIN_U8("graphics/pokemon/oricorio/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Oricorio[] = INCBIN_U8("graphics/pokemon/oricorio/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/front.4bpp.lz"); const u32 gMonPalette_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/normal.gbapal.lz"); @@ -8233,14 +9763,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/back.4bpp.lz"); const u32 gMonShinyPalette_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/shiny.gbapal.lz"); const u8 gMonIcon_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/anim_front.4bpp.lz"); const u32 gMonPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/normal.gbapal.lz"); const u32 gMonBackPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/back.4bpp.lz"); const u32 gMonShinyPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/shiny.gbapal.lz"); const u8 gMonIcon_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CUTIEFLY #if P_FAMILY_ROCKRUFF @@ -8249,14 +9783,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/back.4bpp.lz"); const u32 gMonShinyPalette_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/shiny.gbapal.lz"); const u8 gMonIcon_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/anim_front.4bpp.lz"); const u32 gMonPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/normal.gbapal.lz"); const u32 gMonBackPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/back.4bpp.lz"); const u32 gMonShinyPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/shiny.gbapal.lz"); const u8 gMonIcon_LycanrocMidday[] = INCBIN_U8("graphics/pokemon/lycanroc/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lycanroc[] = INCBIN_U8("graphics/pokemon/lycanroc/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/anim_front.4bpp.lz"); const u32 gMonPalette_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/normal.gbapal.lz"); @@ -8277,7 +9815,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/back.4bpp.lz"); const u32 gMonShinyPalette_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/shiny.gbapal.lz"); const u8 gMonIcon_WishiwashiSolo[] = INCBIN_U8("graphics/pokemon/wishiwashi/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wishiwashi[] = INCBIN_U8("graphics/pokemon/wishiwashi/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/front.4bpp.lz"); const u32 gMonPalette_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/normal.gbapal.lz"); @@ -8292,14 +9832,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/back.4bpp.lz"); const u32 gMonShinyPalette_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/shiny.gbapal.lz"); const u8 gMonIcon_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/front.4bpp.lz"); const u32 gMonPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/normal.gbapal.lz"); const u32 gMonBackPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/back.4bpp.lz"); const u32 gMonShinyPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/shiny.gbapal.lz"); const u8 gMonIcon_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MAREANIE #if P_FAMILY_MUDBRAY @@ -8308,14 +9852,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/back.4bpp.lz"); const u32 gMonShinyPalette_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/shiny.gbapal.lz"); const u8 gMonIcon_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/front.4bpp.lz"); const u32 gMonPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/normal.gbapal.lz"); const u32 gMonBackPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/back.4bpp.lz"); const u32 gMonShinyPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/shiny.gbapal.lz"); const u8 gMonIcon_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MUDBRAY #if P_FAMILY_DEWPIDER @@ -8324,14 +9872,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/back.4bpp.lz"); const u32 gMonShinyPalette_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/shiny.gbapal.lz"); const u8 gMonIcon_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/anim_front.4bpp.lz"); const u32 gMonPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/normal.gbapal.lz"); const u32 gMonBackPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/back.4bpp.lz"); const u32 gMonShinyPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/shiny.gbapal.lz"); const u8 gMonIcon_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DEWPIDER #if P_FAMILY_FOMANTIS @@ -8340,14 +9892,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/back.4bpp.lz"); const u32 gMonShinyPalette_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/shiny.gbapal.lz"); const u8 gMonIcon_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/front.4bpp.lz"); const u32 gMonPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/normal.gbapal.lz"); const u32 gMonBackPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/back.4bpp.lz"); const u32 gMonShinyPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/shiny.gbapal.lz"); const u8 gMonIcon_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FOMANTIS #if P_FAMILY_MORELULL @@ -8356,14 +9912,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/back.4bpp.lz"); const u32 gMonShinyPalette_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/shiny.gbapal.lz"); const u8 gMonIcon_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/front.4bpp.lz"); const u32 gMonPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/normal.gbapal.lz"); const u32 gMonBackPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/back.4bpp.lz"); const u32 gMonShinyPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/shiny.gbapal.lz"); const u8 gMonIcon_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MORELULL #if P_FAMILY_SALANDIT @@ -8372,14 +9932,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/back.4bpp.lz"); const u32 gMonShinyPalette_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/shiny.gbapal.lz"); const u8 gMonIcon_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/anim_front.4bpp.lz"); const u32 gMonPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/normal.gbapal.lz"); const u32 gMonBackPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/back.4bpp.lz"); const u32 gMonShinyPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/shiny.gbapal.lz"); const u8 gMonIcon_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SALANDIT #if P_FAMILY_STUFFUL @@ -8388,14 +9952,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/back.4bpp.lz"); const u32 gMonShinyPalette_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/shiny.gbapal.lz"); const u8 gMonIcon_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/anim_front.4bpp.lz"); const u32 gMonPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/normal.gbapal.lz"); const u32 gMonBackPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/back.4bpp.lz"); const u32 gMonShinyPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/shiny.gbapal.lz"); const u8 gMonIcon_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_STUFFUL #if P_FAMILY_BOUNSWEET @@ -8404,21 +9972,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/back.4bpp.lz"); const u32 gMonShinyPalette_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/shiny.gbapal.lz"); const u8 gMonIcon_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/front.4bpp.lz"); const u32 gMonPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/normal.gbapal.lz"); const u32 gMonBackPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/back.4bpp.lz"); const u32 gMonShinyPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/shiny.gbapal.lz"); const u8 gMonIcon_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/front.4bpp.lz"); const u32 gMonPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/normal.gbapal.lz"); const u32 gMonBackPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/back.4bpp.lz"); const u32 gMonShinyPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/shiny.gbapal.lz"); const u8 gMonIcon_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BOUNSWEET #if P_FAMILY_COMFEY @@ -8427,7 +10001,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/back.4bpp.lz"); const u32 gMonShinyPalette_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/shiny.gbapal.lz"); const u8 gMonIcon_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_COMFEY #if P_FAMILY_ORANGURU @@ -8436,7 +10012,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/back.4bpp.lz"); const u32 gMonShinyPalette_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/shiny.gbapal.lz"); const u8 gMonIcon_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ORANGURU #if P_FAMILY_PASSIMIAN @@ -8445,7 +10023,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/back.4bpp.lz"); const u32 gMonShinyPalette_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/shiny.gbapal.lz"); const u8 gMonIcon_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PASSIMIAN #if P_FAMILY_WIMPOD @@ -8454,14 +10034,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/back.4bpp.lz"); const u32 gMonShinyPalette_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/shiny.gbapal.lz"); const u8 gMonIcon_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/anim_front.4bpp.lz"); const u32 gMonPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/normal.gbapal.lz"); const u32 gMonBackPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/back.4bpp.lz"); const u32 gMonShinyPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/shiny.gbapal.lz"); const u8 gMonIcon_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WIMPOD #if P_FAMILY_SANDYGAST @@ -8470,14 +10054,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/back.4bpp.lz"); const u32 gMonShinyPalette_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/shiny.gbapal.lz"); const u8 gMonIcon_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/front.4bpp.lz"); const u32 gMonPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/normal.gbapal.lz"); const u32 gMonBackPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/back.4bpp.lz"); const u32 gMonShinyPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/shiny.gbapal.lz"); const u8 gMonIcon_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SANDYGAST #if P_FAMILY_PYUKUMUKU @@ -8486,7 +10074,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/back.4bpp.lz"); const u32 gMonShinyPalette_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/shiny.gbapal.lz"); const u8 gMonIcon_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PYUKUMUKU #if P_FAMILY_TYPE_NULL @@ -8495,12 +10085,16 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/back.4bpp.lz"); const u32 gMonShinyPalette_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/shiny.gbapal.lz"); const u8 gMonIcon_TypeNull[] = INCBIN_U8("graphics/pokemon/type_null/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Type_Null[] = INCBIN_U8("graphics/pokemon/type_null/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/front.4bpp.lz"); const u32 gMonBackPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/back.4bpp.lz"); const u8 gMonIcon_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/normal.gbapal.lz"); const u32 gMonShinyPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/shiny.gbapal.lz"); @@ -8563,7 +10157,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/back.4bpp.lz"); const u32 gMonShinyPalette_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/shiny.gbapal.lz"); const u8 gMonIcon_MiniorMeteor[] = INCBIN_U8("graphics/pokemon/minior/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Minior[] = INCBIN_U8("graphics/pokemon/minior/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/front.4bpp.lz"); const u32 gMonBackPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/back.4bpp.lz"); @@ -8597,7 +10193,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/back.4bpp.lz"); const u32 gMonShinyPalette_Komala[] = INCBIN_U32("graphics/pokemon/komala/shiny.gbapal.lz"); const u8 gMonIcon_Komala[] = INCBIN_U8("graphics/pokemon/komala/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Komala[] = INCBIN_U8("graphics/pokemon/komala/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KOMALA #if P_FAMILY_TURTONATOR @@ -8606,7 +10204,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/back.4bpp.lz"); const u32 gMonShinyPalette_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/shiny.gbapal.lz"); const u8 gMonIcon_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TURTONATOR #if P_FAMILY_TOGEDEMARU @@ -8615,7 +10215,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/back.4bpp.lz"); const u32 gMonShinyPalette_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/shiny.gbapal.lz"); const u8 gMonIcon_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TOGEDEMARU #if P_FAMILY_MIMIKYU @@ -8624,7 +10226,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/back.4bpp.lz"); const u32 gMonShinyPalette_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/shiny.gbapal.lz"); const u8 gMonIcon_MimikyuDisguised[] = INCBIN_U8("graphics/pokemon/mimikyu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/front.4bpp.lz"); const u32 gMonPalette_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/normal.gbapal.lz"); @@ -8639,7 +10243,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp.lz"); const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shiny.gbapal.lz"); const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BRUXISH #if P_FAMILY_DRAMPA @@ -8648,7 +10254,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRAMPA #if P_FAMILY_DHELMISE @@ -8657,7 +10265,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DHELMISE #if P_FAMILY_JANGMO_O @@ -8666,21 +10276,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); const u32 gMonShinyPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); const u8 gMonIcon_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/anim_front.4bpp.lz"); const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/anim_front.4bpp.lz"); const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_JANGMO_O #if P_FAMILY_TAPU_KOKO @@ -8689,7 +10305,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tapu_Koko[] = INCBIN_U8("graphics/pokemon/tapu_koko/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAPU_KOKO #if P_FAMILY_TAPU_LELE @@ -8698,7 +10316,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/back.4bpp.lz"); const u32 gMonShinyPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/shiny.gbapal.lz"); const u8 gMonIcon_TapuLele[] = INCBIN_U8("graphics/pokemon/tapu_lele/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tapu_Lele[] = INCBIN_U8("graphics/pokemon/tapu_lele/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAPU_LELE #if P_FAMILY_TAPU_BULU @@ -8707,7 +10327,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/back.4bpp.lz"); const u32 gMonShinyPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/shiny.gbapal.lz"); const u8 gMonIcon_TapuBulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tapu_Bulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAPU_BULU #if P_FAMILY_TAPU_FINI @@ -8716,7 +10338,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/back.4bpp.lz"); const u32 gMonShinyPalette_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/shiny.gbapal.lz"); const u8 gMonIcon_TapuFini[] = INCBIN_U8("graphics/pokemon/tapu_fini/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Tapu_Fini[] = INCBIN_U8("graphics/pokemon/tapu_fini/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAPU_FINI #if P_FAMILY_COSMOG @@ -8725,28 +10349,36 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/back.4bpp.lz"); const u32 gMonShinyPalette_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/shiny.gbapal.lz"); const u8 gMonIcon_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/front.4bpp.lz"); const u32 gMonPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/normal.gbapal.lz"); const u32 gMonBackPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/back.4bpp.lz"); const u32 gMonShinyPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/shiny.gbapal.lz"); const u8 gMonIcon_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/front.4bpp.lz"); const u32 gMonPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/normal.gbapal.lz"); const u32 gMonBackPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/back.4bpp.lz"); const u32 gMonShinyPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/shiny.gbapal.lz"); const u8 gMonIcon_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/front.4bpp.lz"); const u32 gMonPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/normal.gbapal.lz"); const u32 gMonBackPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/back.4bpp.lz"); const u32 gMonShinyPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/shiny.gbapal.lz"); const u8 gMonIcon_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_COSMOG #if P_FAMILY_NIHILEGO @@ -8755,7 +10387,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/back.4bpp.lz"); const u32 gMonShinyPalette_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/shiny.gbapal.lz"); const u8 gMonIcon_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NIHILEGO #if P_FAMILY_BUZZWOLE @@ -8764,7 +10398,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/back.4bpp.lz"); const u32 gMonShinyPalette_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/shiny.gbapal.lz"); const u8 gMonIcon_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BUZZWOLE #if P_FAMILY_PHEROMOSA @@ -8773,7 +10409,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/back.4bpp.lz"); const u32 gMonShinyPalette_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/shiny.gbapal.lz"); const u8 gMonIcon_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PHEROMOSA #if P_FAMILY_XURKITREE @@ -8782,7 +10420,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/back.4bpp.lz"); const u32 gMonShinyPalette_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/shiny.gbapal.lz"); const u8 gMonIcon_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_XURKITREE #if P_FAMILY_CELESTEELA @@ -8791,7 +10431,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/back.4bpp.lz"); const u32 gMonShinyPalette_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/shiny.gbapal.lz"); const u8 gMonIcon_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CELESTEELA #if P_FAMILY_KARTANA @@ -8800,7 +10442,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/back.4bpp.lz"); const u32 gMonShinyPalette_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/shiny.gbapal.lz"); const u8 gMonIcon_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KARTANA #if P_FAMILY_GUZZLORD @@ -8809,7 +10453,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/back.4bpp.lz"); const u32 gMonShinyPalette_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/shiny.gbapal.lz"); const u8 gMonIcon_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GUZZLORD #if P_FAMILY_NECROZMA @@ -8818,7 +10464,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/back.4bpp.lz"); const u32 gMonShinyPalette_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/shiny.gbapal.lz"); const u8 gMonIcon_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_FUSION_FORMS const u32 gMonFrontPic_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/front.4bpp.lz"); @@ -8849,7 +10497,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/back.4bpp.lz"); const u32 gMonShinyPalette_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/shiny.gbapal.lz"); const u8 gMonIcon_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/front.4bpp.lz"); const u32 gMonPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/normal.gbapal.lz"); @@ -8864,7 +10514,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/back.4bpp.lz"); const u32 gMonShinyPalette_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/shiny.gbapal.lz"); const u8 gMonIcon_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MARSHADOW #if P_FAMILY_POIPOLE @@ -8873,14 +10525,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/back.4bpp.lz"); const u32 gMonShinyPalette_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/shiny.gbapal.lz"); const u8 gMonIcon_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/front.4bpp.lz"); const u32 gMonPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/normal.gbapal.lz"); const u32 gMonBackPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/back.4bpp.lz"); const u32 gMonShinyPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/shiny.gbapal.lz"); const u8 gMonIcon_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_POIPOLE #if P_FAMILY_STAKATAKA @@ -8889,7 +10545,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/back.4bpp.lz"); const u32 gMonShinyPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/shiny.gbapal.lz"); const u8 gMonIcon_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_STAKATAKA #if P_FAMILY_BLACEPHALON @@ -8898,7 +10556,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/back.4bpp.lz"); const u32 gMonShinyPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/shiny.gbapal.lz"); const u8 gMonIcon_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BLACEPHALON #if P_FAMILY_ZERAORA @@ -8907,7 +10567,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/back.4bpp.lz"); const u32 gMonShinyPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/shiny.gbapal.lz"); const u8 gMonIcon_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ZERAORA #if P_FAMILY_MELTAN @@ -8916,14 +10578,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/back.4bpp.lz"); const u32 gMonShinyPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/shiny.gbapal.lz"); const u8 gMonIcon_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/front.4bpp.lz"); const u32 gMonPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/normal.gbapal.lz"); const u32 gMonBackPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/back.4bpp.lz"); const u32 gMonShinyPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/shiny.gbapal.lz"); const u8 gMonIcon_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/front.4bpp.lz"); @@ -8940,21 +10606,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/back.4bpp.lz"); const u32 gMonShinyPalette_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/shiny.gbapal.lz"); const u8 gMonIcon_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/front.4bpp.lz"); const u32 gMonPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/normal.gbapal.lz"); const u32 gMonBackPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/back.4bpp.lz"); const u32 gMonShinyPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/shiny.gbapal.lz"); const u8 gMonIcon_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/front.4bpp.lz"); const u32 gMonPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/normal.gbapal.lz"); const u32 gMonBackPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/back.4bpp.lz"); const u32 gMonShinyPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/shiny.gbapal.lz"); const u8 gMonIcon_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/front.4bpp.lz"); @@ -8971,21 +10643,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/back.4bpp.lz"); const u32 gMonShinyPalette_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/shiny.gbapal.lz"); const u8 gMonIcon_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/front.4bpp.lz"); const u32 gMonPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/normal.gbapal.lz"); const u32 gMonBackPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/back.4bpp.lz"); const u32 gMonShinyPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/shiny.gbapal.lz"); const u8 gMonIcon_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/front.4bpp.lz"); const u32 gMonPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/normal.gbapal.lz"); const u32 gMonBackPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/back.4bpp.lz"); const u32 gMonShinyPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/shiny.gbapal.lz"); const u8 gMonIcon_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/front.4bpp.lz"); @@ -9002,21 +10680,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/back.4bpp.lz"); const u32 gMonShinyPalette_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/shiny.gbapal.lz"); const u8 gMonIcon_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/front.4bpp.lz"); const u32 gMonPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/normal.gbapal.lz"); const u32 gMonBackPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/back.4bpp.lz"); const u32 gMonShinyPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/shiny.gbapal.lz"); const u8 gMonIcon_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/front.4bpp.lz"); const u32 gMonPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/normal.gbapal.lz"); const u32 gMonBackPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/back.4bpp.lz"); const u32 gMonShinyPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/shiny.gbapal.lz"); const u8 gMonIcon_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/front.4bpp.lz"); @@ -9033,14 +10717,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/back.4bpp.lz"); const u32 gMonShinyPalette_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/shiny.gbapal.lz"); const u8 gMonIcon_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/front.4bpp.lz"); const u32 gMonPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/normal.gbapal.lz"); const u32 gMonBackPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/back.4bpp.lz"); const u32 gMonShinyPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/shiny.gbapal.lz"); const u8 gMonIcon_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SKWOVET #if P_FAMILY_ROOKIDEE @@ -9049,21 +10737,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/back.4bpp.lz"); const u32 gMonShinyPalette_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/shiny.gbapal.lz"); const u8 gMonIcon_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/anim_front.4bpp.lz"); const u32 gMonPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/normal.gbapal.lz"); const u32 gMonBackPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/back.4bpp.lz"); const u32 gMonShinyPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/shiny.gbapal.lz"); const u8 gMonIcon_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/anim_front.4bpp.lz"); const u32 gMonPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/normal.gbapal.lz"); const u32 gMonBackPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/back.4bpp.lz"); const u32 gMonShinyPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/shiny.gbapal.lz"); const u8 gMonIcon_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/front.4bpp.lz"); @@ -9080,21 +10774,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/back.4bpp.lz"); const u32 gMonShinyPalette_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/shiny.gbapal.lz"); const u8 gMonIcon_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/front.4bpp.lz"); const u32 gMonPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/normal.gbapal.lz"); const u32 gMonBackPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/back.4bpp.lz"); const u32 gMonShinyPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/shiny.gbapal.lz"); const u8 gMonIcon_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/front.4bpp.lz"); const u32 gMonPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/normal.gbapal.lz"); const u32 gMonBackPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/back.4bpp.lz"); const u32 gMonShinyPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/shiny.gbapal.lz"); const u8 gMonIcon_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/front.4bpp.lz"); @@ -9111,14 +10811,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/back.4bpp.lz"); const u32 gMonShinyPalette_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/shiny.gbapal.lz"); const u8 gMonIcon_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/front.4bpp.lz"); const u32 gMonPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/normal.gbapal.lz"); const u32 gMonBackPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/back.4bpp.lz"); const u32 gMonShinyPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/shiny.gbapal.lz"); const u8 gMonIcon_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NICKIT #if P_FAMILY_GOSSIFLEUR @@ -9127,14 +10831,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/back.4bpp.lz"); const u32 gMonShinyPalette_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/shiny.gbapal.lz"); const u8 gMonIcon_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/front.4bpp.lz"); const u32 gMonPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/normal.gbapal.lz"); const u32 gMonBackPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/back.4bpp.lz"); const u32 gMonShinyPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/shiny.gbapal.lz"); const u8 gMonIcon_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GOSSIFLEUR #if P_FAMILY_WOOLOO @@ -9143,14 +10851,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/back.4bpp.lz"); const u32 gMonShinyPalette_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/shiny.gbapal.lz"); const u8 gMonIcon_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/front.4bpp.lz"); const u32 gMonPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/normal.gbapal.lz"); const u32 gMonBackPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/back.4bpp.lz"); const u32 gMonShinyPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/shiny.gbapal.lz"); const u8 gMonIcon_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WOOLOO #if P_FAMILY_CHEWTLE @@ -9159,14 +10871,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/back.4bpp.lz"); const u32 gMonShinyPalette_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/shiny.gbapal.lz"); const u8 gMonIcon_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/anim_front.4bpp.lz"); const u32 gMonPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/normal.gbapal.lz"); const u32 gMonBackPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/back.4bpp.lz"); const u32 gMonShinyPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/shiny.gbapal.lz"); const u8 gMonIcon_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/front.4bpp.lz"); @@ -9183,14 +10899,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/back.4bpp.lz"); const u32 gMonShinyPalette_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/shiny.gbapal.lz"); const u8 gMonIcon_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/front.4bpp.lz"); const u32 gMonPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/normal.gbapal.lz"); const u32 gMonBackPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/back.4bpp.lz"); const u32 gMonShinyPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/shiny.gbapal.lz"); const u8 gMonIcon_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_YAMPER #if P_FAMILY_ROLYCOLY @@ -9199,21 +10919,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/back.4bpp.lz"); const u32 gMonShinyPalette_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/shiny.gbapal.lz"); const u8 gMonIcon_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/anim_front.4bpp.lz"); const u32 gMonPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/normal.gbapal.lz"); const u32 gMonBackPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/back.4bpp.lz"); const u32 gMonShinyPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/shiny.gbapal.lz"); const u8 gMonIcon_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/anim_front.4bpp.lz"); const u32 gMonPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/normal.gbapal.lz"); const u32 gMonBackPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/back.4bpp.lz"); const u32 gMonShinyPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/shiny.gbapal.lz"); const u8 gMonIcon_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/front.4bpp.lz"); @@ -9230,14 +10956,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Applin[] = INCBIN_U32("graphics/pokemon/applin/back.4bpp.lz"); const u32 gMonShinyPalette_Applin[] = INCBIN_U32("graphics/pokemon/applin/shiny.gbapal.lz"); const u8 gMonIcon_Applin[] = INCBIN_U8("graphics/pokemon/applin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Applin[] = INCBIN_U8("graphics/pokemon/applin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/anim_front.4bpp.lz"); const u32 gMonPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/normal.gbapal.lz"); const u32 gMonBackPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/back.4bpp.lz"); const u32 gMonShinyPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/shiny.gbapal.lz"); const u8 gMonIcon_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/front.4bpp.lz"); @@ -9252,7 +10982,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/back.4bpp.lz"); const u32 gMonShinyPalette_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/shiny.gbapal.lz"); const u8 gMonIcon_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/front.4bpp.lz"); @@ -9268,7 +11000,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/back.4bpp.lz"); const u32 gMonShinyPalette_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/shiny.gbapal.lz"); const u8 gMonIcon_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/footprint.1bpp"); +#endif //P_FOOTPRINTS + + const u32 gMonFrontPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/front.4bpp.lz"); + const u32 gMonPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/normal.gbapal.lz"); + const u32 gMonBackPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/back.4bpp.lz"); + const u32 gMonShinyPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/shiny.gbapal.lz"); + const u8 gMonIcon_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9278,14 +11021,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/back.4bpp.lz"); const u32 gMonShinyPalette_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/shiny.gbapal.lz"); const u8 gMonIcon_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/front.4bpp.lz"); const u32 gMonPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/normal.gbapal.lz"); const u32 gMonBackPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/back.4bpp.lz"); const u32 gMonShinyPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/shiny.gbapal.lz"); const u8 gMonIcon_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/front.4bpp.lz"); @@ -9302,7 +11049,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/back.4bpp.lz"); const u32 gMonShinyPalette_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/shiny.gbapal.lz"); const u8 gMonIcon_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/front.4bpp.lz"); const u32 gMonPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/normal.gbapal.lz"); @@ -9323,14 +11072,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/back.4bpp.lz"); const u32 gMonShinyPalette_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/shiny.gbapal.lz"); const u8 gMonIcon_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/front.4bpp.lz"); const u32 gMonPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/normal.gbapal.lz"); const u32 gMonBackPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/back.4bpp.lz"); const u32 gMonShinyPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/shiny.gbapal.lz"); const u8 gMonIcon_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ARROKUDA #if P_FAMILY_TOXEL @@ -9339,14 +11092,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/back.4bpp.lz"); const u32 gMonShinyPalette_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/shiny.gbapal.lz"); const u8 gMonIcon_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/front.4bpp.lz"); const u32 gMonPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/normal.gbapal.lz"); const u32 gMonBackPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/back.4bpp.lz"); const u32 gMonShinyPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/shiny.gbapal.lz"); const u8 gMonIcon_ToxtricityAmped[] = INCBIN_U8("graphics/pokemon/toxtricity/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Toxtricity[] = INCBIN_U8("graphics/pokemon/toxtricity/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/front.4bpp.lz"); const u32 gMonPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/normal.gbapal.lz"); @@ -9369,14 +11126,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/back.4bpp.lz"); const u32 gMonShinyPalette_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/shiny.gbapal.lz"); const u8 gMonIcon_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/anim_front.4bpp.lz"); const u32 gMonPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/normal.gbapal.lz"); const u32 gMonBackPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/back.4bpp.lz"); const u32 gMonShinyPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/shiny.gbapal.lz"); const u8 gMonIcon_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/front.4bpp.lz"); @@ -9393,14 +11154,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/back.4bpp.lz"); const u32 gMonShinyPalette_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/shiny.gbapal.lz"); const u8 gMonIcon_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/front.4bpp.lz"); const u32 gMonPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/normal.gbapal.lz"); const u32 gMonBackPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/back.4bpp.lz"); const u32 gMonShinyPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/shiny.gbapal.lz"); const u8 gMonIcon_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CLOBBOPUS #if P_FAMILY_SINISTEA @@ -9409,14 +11174,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/back.4bpp.lz"); const u32 gMonShinyPalette_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/shiny.gbapal.lz"); const u8 gMonIcon_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/front.4bpp.lz"); const u32 gMonPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/normal.gbapal.lz"); const u32 gMonBackPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/back.4bpp.lz"); const u32 gMonShinyPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/shiny.gbapal.lz"); const u8 gMonIcon_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SINISTEA #if P_FAMILY_HATENNA @@ -9425,21 +11194,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/back.4bpp.lz"); const u32 gMonShinyPalette_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/shiny.gbapal.lz"); const u8 gMonIcon_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/front.4bpp.lz"); const u32 gMonPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/normal.gbapal.lz"); const u32 gMonBackPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/back.4bpp.lz"); const u32 gMonShinyPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/shiny.gbapal.lz"); const u8 gMonIcon_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/front.4bpp.lz"); const u32 gMonPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/normal.gbapal.lz"); const u32 gMonBackPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/back.4bpp.lz"); const u32 gMonShinyPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/shiny.gbapal.lz"); const u8 gMonIcon_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/front.4bpp.lz"); @@ -9456,21 +11231,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/back.4bpp.lz"); const u32 gMonShinyPalette_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/shiny.gbapal.lz"); const u8 gMonIcon_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/front.4bpp.lz"); const u32 gMonPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/normal.gbapal.lz"); const u32 gMonBackPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/back.4bpp.lz"); const u32 gMonShinyPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/shiny.gbapal.lz"); const u8 gMonIcon_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/front.4bpp.lz"); const u32 gMonPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/normal.gbapal.lz"); const u32 gMonBackPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/back.4bpp.lz"); const u32 gMonShinyPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/shiny.gbapal.lz"); const u8 gMonIcon_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/front.4bpp.lz"); @@ -9487,7 +11268,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/back.4bpp.lz"); const u32 gMonShinyPalette_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/shiny.gbapal.lz"); const u8 gMonIcon_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/front.4bpp.lz"); const u32 gMonBackPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/back.4bpp.lz"); const u32 gMonPalette_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/normal.gbapal.lz"); @@ -9515,7 +11298,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonPalette_AlcremieStrawberryRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_rainbow_swirl.gbapal.lz"); const u32 gMonBackPic_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/back.4bpp.lz"); const u32 gMonShinyPalette_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_shiny.gbapal.lz"); +#if P_FOOTPRINTS const u8 gMonFootprint_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/front.4bpp.lz"); const u32 gMonPalette_AlcremieBerryVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_default.gbapal.lz"); @@ -9610,7 +11395,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/back.4bpp.lz"); const u32 gMonShinyPalette_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/shiny.gbapal.lz"); const u8 gMonIcon_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FALINKS #if P_FAMILY_PINCURCHIN @@ -9619,7 +11406,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/back.4bpp.lz"); const u32 gMonShinyPalette_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/shiny.gbapal.lz"); const u8 gMonIcon_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PINCURCHIN #if P_FAMILY_SNOM @@ -9628,14 +11417,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Snom[] = INCBIN_U32("graphics/pokemon/snom/back.4bpp.lz"); const u32 gMonShinyPalette_Snom[] = INCBIN_U32("graphics/pokemon/snom/shiny.gbapal.lz"); const u8 gMonIcon_Snom[] = INCBIN_U8("graphics/pokemon/snom/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Snom[] = INCBIN_U8("graphics/pokemon/snom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/front.4bpp.lz"); const u32 gMonPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/normal.gbapal.lz"); const u32 gMonBackPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/back.4bpp.lz"); const u32 gMonShinyPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/shiny.gbapal.lz"); const u8 gMonIcon_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SNOM #if P_FAMILY_STONJOURNER @@ -9644,7 +11437,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/back.4bpp.lz"); const u32 gMonShinyPalette_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/shiny.gbapal.lz"); const u8 gMonIcon_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_STONJOURNER #if P_FAMILY_EISCUE @@ -9653,7 +11448,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/back.4bpp.lz"); const u32 gMonShinyPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/shiny.gbapal.lz"); const u8 gMonIcon_EiscueIceFace[] = INCBIN_U8("graphics/pokemon/eiscue/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eiscue[] = INCBIN_U8("graphics/pokemon/eiscue/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); const u32 gMonPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); @@ -9668,7 +11465,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/back.4bpp.lz"); const u32 gMonShinyPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/shiny.gbapal.lz"); const u8 gMonIcon_IndeedeeMale[] = INCBIN_U8("graphics/pokemon/indeedee/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Indeedee[] = INCBIN_U8("graphics/pokemon/indeedee/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/front.4bpp.lz"); const u32 gMonPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/normal.gbapal.lz"); @@ -9683,7 +11482,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/back.4bpp.lz"); const u32 gMonShinyPalette_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/shiny.gbapal.lz"); const u8 gMonIcon_MorpekoFullBelly[] = INCBIN_U8("graphics/pokemon/morpeko/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Morpeko[] = INCBIN_U8("graphics/pokemon/morpeko/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/front.4bpp.lz"); const u32 gMonPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/normal.gbapal.lz"); @@ -9698,14 +11499,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/back.4bpp.lz"); const u32 gMonShinyPalette_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/shiny.gbapal.lz"); const u8 gMonIcon_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/front.4bpp.lz"); const u32 gMonPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/normal.gbapal.lz"); const u32 gMonBackPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/back.4bpp.lz"); const u32 gMonShinyPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/shiny.gbapal.lz"); const u8 gMonIcon_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/front.4bpp.lz"); @@ -9722,7 +11527,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/back.4bpp.lz"); const u32 gMonShinyPalette_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/shiny.gbapal.lz"); const u8 gMonIcon_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRACOZOLT #if P_FAMILY_ARCTOZOLT @@ -9731,7 +11538,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/back.4bpp.lz"); const u32 gMonShinyPalette_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/shiny.gbapal.lz"); const u8 gMonIcon_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ARCTOZOLT #if P_FAMILY_DRACOVISH @@ -9740,7 +11549,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/back.4bpp.lz"); const u32 gMonShinyPalette_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/shiny.gbapal.lz"); const u8 gMonIcon_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DRACOVISH #if P_FAMILY_ARCTOVISH @@ -9749,7 +11560,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/back.4bpp.lz"); const u32 gMonShinyPalette_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/shiny.gbapal.lz"); const u8 gMonIcon_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON @@ -9758,7 +11571,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/back.4bpp.lz"); const u32 gMonShinyPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/shiny.gbapal.lz"); const u8 gMonIcon_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_GIGANTAMAX_FORMS const u32 gMonFrontPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/front.4bpp.lz"); @@ -9767,6 +11582,17 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + const u32 gMonFrontPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/front.4bpp.lz"); + const u32 gMonPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/normal.gbapal.lz"); + const u32 gMonBackPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/back.4bpp.lz"); + const u32 gMonShinyPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/shiny.gbapal.lz"); + const u8 gMonIcon_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -9775,21 +11601,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/back.4bpp.lz"); const u32 gMonShinyPalette_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/shiny.gbapal.lz"); const u8 gMonIcon_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/front.4bpp.lz"); const u32 gMonPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/normal.gbapal.lz"); const u32 gMonBackPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/back.4bpp.lz"); const u32 gMonShinyPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/shiny.gbapal.lz"); const u8 gMonIcon_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/front.4bpp.lz"); const u32 gMonPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/normal.gbapal.lz"); const u32 gMonBackPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/back.4bpp.lz"); const u32 gMonShinyPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/shiny.gbapal.lz"); const u8 gMonIcon_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN @@ -9798,7 +11630,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/back.4bpp.lz"); const u32 gMonShinyPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/shiny.gbapal.lz"); const u8 gMonIcon_ZacianHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zacian/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zacian[] = INCBIN_U8("graphics/pokemon/zacian/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/front.4bpp.lz"); const u32 gMonPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/normal.gbapal.lz"); @@ -9813,7 +11647,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/back.4bpp.lz"); const u32 gMonShinyPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/shiny.gbapal.lz"); const u8 gMonIcon_ZamazentaHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zamazenta/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zamazenta[] = INCBIN_U8("graphics/pokemon/zamazenta/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/front.4bpp.lz"); const u32 gMonPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/normal.gbapal.lz"); @@ -9828,7 +11664,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/back.4bpp.lz"); const u32 gMonShinyPalette_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/shiny.gbapal.lz"); const u8 gMonIcon_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/front.4bpp.lz"); const u32 gMonPalette_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/normal.gbapal.lz"); @@ -9843,14 +11681,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/back.4bpp.lz"); const u32 gMonShinyPalette_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/shiny.gbapal.lz"); const u8 gMonIcon_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/front.4bpp.lz"); const u32 gMonPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/normal.gbapal.lz"); const u32 gMonBackPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/back.4bpp.lz"); const u32 gMonShinyPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/shiny.gbapal.lz"); const u8 gMonIcon_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/front.4bpp.lz"); const u32 gMonPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/normal.gbapal.lz"); @@ -9876,7 +11718,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/back.4bpp.lz"); const u32 gMonShinyPalette_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/shiny.gbapal.lz"); const u8 gMonIcon_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/front.4bpp.lz"); const u32 gMonPalette_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/normal.gbapal.lz"); @@ -9891,7 +11735,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/back.4bpp.lz"); const u32 gMonShinyPalette_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/shiny.gbapal.lz"); const u8 gMonIcon_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGIELEKI #if P_FAMILY_REGIDRAGO @@ -9900,7 +11746,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/back.4bpp.lz"); const u32 gMonShinyPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/shiny.gbapal.lz"); const u8 gMonIcon_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_REGIDRAGO #if P_FAMILY_GLASTRIER @@ -9909,7 +11757,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/back.4bpp.lz"); const u32 gMonShinyPalette_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/shiny.gbapal.lz"); const u8 gMonIcon_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GLASTRIER #if P_FAMILY_SPECTRIER @@ -9918,7 +11768,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/back.4bpp.lz"); const u32 gMonShinyPalette_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/shiny.gbapal.lz"); const u8 gMonIcon_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPECTRIER #if P_FAMILY_CALYREX @@ -9927,7 +11779,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/back.4bpp.lz"); const u32 gMonShinyPalette_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/shiny.gbapal.lz"); const u8 gMonIcon_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/icon.4bpp"); +#if P_FOOTPRINTS const u8 gMonFootprint_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/footprint.1bpp"); +#endif //P_FOOTPRINTS #if P_FUSION_FORMS const u32 gMonFrontPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/front.4bpp.lz"); @@ -9952,21 +11806,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/back.4bpp.lz"); const u32 gMonShinyPalette_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/shiny.gbapal.lz"); const u8 gMonIcon_Sprigatito[] = INCBIN_U8("graphics/pokemon/sprigatito/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Sprigatito[] = INCBIN_U8("graphics/pokemon/sprigatito/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/front.4bpp.lz"); const u32 gMonPalette_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/normal.gbapal.lz"); const u32 gMonBackPic_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/back.4bpp.lz"); const u32 gMonShinyPalette_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/shiny.gbapal.lz"); const u8 gMonIcon_Floragato[] = INCBIN_U8("graphics/pokemon/floragato/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Floragato[] = INCBIN_U8("graphics/pokemon/floragato/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/front.4bpp.lz"); const u32 gMonPalette_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/normal.gbapal.lz"); const u32 gMonBackPic_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/back.4bpp.lz"); const u32 gMonShinyPalette_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/shiny.gbapal.lz"); const u8 gMonIcon_Meowscarada[] = INCBIN_U8("graphics/pokemon/meowscarada/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Meowscarada[] = INCBIN_U8("graphics/pokemon/meowscarada/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SPRIGATITO #if P_FAMILY_FUECOCO @@ -9975,21 +11835,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/back.4bpp.lz"); const u32 gMonShinyPalette_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/shiny.gbapal.lz"); const u8 gMonIcon_Fuecoco[] = INCBIN_U8("graphics/pokemon/fuecoco/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Fuecoco[] = INCBIN_U8("graphics/pokemon/fuecoco/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/front.4bpp.lz"); const u32 gMonPalette_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/normal.gbapal.lz"); const u32 gMonBackPic_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/back.4bpp.lz"); const u32 gMonShinyPalette_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/shiny.gbapal.lz"); const u8 gMonIcon_Crocalor[] = INCBIN_U8("graphics/pokemon/crocalor/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Crocalor[] = INCBIN_U8("graphics/pokemon/crocalor/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/front.4bpp.lz"); const u32 gMonPalette_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/normal.gbapal.lz"); const u32 gMonBackPic_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/back.4bpp.lz"); const u32 gMonShinyPalette_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/shiny.gbapal.lz"); const u8 gMonIcon_Skeledirge[] = INCBIN_U8("graphics/pokemon/skeledirge/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Skeledirge[] = INCBIN_U8("graphics/pokemon/skeledirge/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FUECOCO #if P_FAMILY_QUAXLY @@ -9998,21 +11864,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/back.4bpp.lz"); const u32 gMonShinyPalette_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/shiny.gbapal.lz"); const u8 gMonIcon_Quaxly[] = INCBIN_U8("graphics/pokemon/quaxly/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Quaxly[] = INCBIN_U8("graphics/pokemon/quaxly/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/front.4bpp.lz"); const u32 gMonPalette_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/normal.gbapal.lz"); const u32 gMonBackPic_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/back.4bpp.lz"); const u32 gMonShinyPalette_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/shiny.gbapal.lz"); const u8 gMonIcon_Quaxwell[] = INCBIN_U8("graphics/pokemon/quaxwell/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Quaxwell[] = INCBIN_U8("graphics/pokemon/quaxwell/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/front.4bpp.lz"); const u32 gMonPalette_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/normal.gbapal.lz"); const u32 gMonBackPic_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/back.4bpp.lz"); const u32 gMonShinyPalette_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/shiny.gbapal.lz"); const u8 gMonIcon_Quaquaval[] = INCBIN_U8("graphics/pokemon/quaquaval/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Quaquaval[] = INCBIN_U8("graphics/pokemon/quaquaval/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_QUAXLY #if P_FAMILY_LECHONK @@ -10021,14 +11893,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/back.4bpp.lz"); const u32 gMonShinyPalette_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/shiny.gbapal.lz"); const u8 gMonIcon_Lechonk[] = INCBIN_U8("graphics/pokemon/lechonk/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Lechonk[] = INCBIN_U8("graphics/pokemon/lechonk/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/front.4bpp.lz"); const u32 gMonPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/normal.gbapal.lz"); const u32 gMonBackPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/back.4bpp.lz"); const u32 gMonShinyPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/shiny.gbapal.lz"); const u8 gMonIcon_OinkologneMale[] = INCBIN_U8("graphics/pokemon/oinkologne/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Oinkologne[] = INCBIN_U8("graphics/pokemon/oinkologne/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/front.4bpp.lz"); const u32 gMonPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/normal.gbapal.lz"); @@ -10043,14 +11919,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/back.4bpp.lz"); const u32 gMonShinyPalette_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/shiny.gbapal.lz"); const u8 gMonIcon_Tarountula[] = INCBIN_U8("graphics/pokemon/tarountula/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tarountula[] = INCBIN_U8("graphics/pokemon/tarountula/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/front.4bpp.lz"); const u32 gMonPalette_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/normal.gbapal.lz"); const u32 gMonBackPic_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/back.4bpp.lz"); const u32 gMonShinyPalette_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/shiny.gbapal.lz"); const u8 gMonIcon_Spidops[] = INCBIN_U8("graphics/pokemon/spidops/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Spidops[] = INCBIN_U8("graphics/pokemon/spidops/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TAROUNTULA #if P_FAMILY_NYMBLE @@ -10059,14 +11939,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/back.4bpp.lz"); const u32 gMonShinyPalette_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/shiny.gbapal.lz"); const u8 gMonIcon_Nymble[] = INCBIN_U8("graphics/pokemon/nymble/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Nymble[] = INCBIN_U8("graphics/pokemon/nymble/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/front.4bpp.lz"); const u32 gMonPalette_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/normal.gbapal.lz"); const u32 gMonBackPic_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/back.4bpp.lz"); const u32 gMonShinyPalette_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/shiny.gbapal.lz"); const u8 gMonIcon_Lokix[] = INCBIN_U8("graphics/pokemon/lokix/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Lokix[] = INCBIN_U8("graphics/pokemon/lokix/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NYMBLE #if P_FAMILY_PAWMI @@ -10075,21 +11959,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/back.4bpp.lz"); const u32 gMonShinyPalette_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/shiny.gbapal.lz"); const u8 gMonIcon_Pawmi[] = INCBIN_U8("graphics/pokemon/pawmi/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Pawmi[] = INCBIN_U8("graphics/pokemon/pawmi/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/front.4bpp.lz"); const u32 gMonPalette_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/normal.gbapal.lz"); const u32 gMonBackPic_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/back.4bpp.lz"); const u32 gMonShinyPalette_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/shiny.gbapal.lz"); const u8 gMonIcon_Pawmo[] = INCBIN_U8("graphics/pokemon/pawmo/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Pawmo[] = INCBIN_U8("graphics/pokemon/pawmo/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/front.4bpp.lz"); const u32 gMonPalette_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/normal.gbapal.lz"); const u32 gMonBackPic_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/back.4bpp.lz"); const u32 gMonShinyPalette_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/shiny.gbapal.lz"); const u8 gMonIcon_Pawmot[] = INCBIN_U8("graphics/pokemon/pawmot/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Pawmot[] = INCBIN_U8("graphics/pokemon/pawmot/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_PAWMI #if P_FAMILY_TANDEMAUS @@ -10098,11 +11988,15 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/back.4bpp.lz"); const u32 gMonShinyPalette_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/shiny.gbapal.lz"); const u8 gMonIcon_Tandemaus[] = INCBIN_U8("graphics/pokemon/tandemaus/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tandemaus[] = INCBIN_U8("graphics/pokemon/tandemaus/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/normal.gbapal.lz"); const u32 gMonShinyPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/shiny.gbapal.lz"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Maushold[] = INCBIN_U8("graphics/pokemon/maushold/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/front.4bpp.lz"); const u32 gMonBackPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/back.4bpp.lz"); @@ -10119,14 +12013,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/back.4bpp.lz"); const u32 gMonShinyPalette_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/shiny.gbapal.lz"); const u8 gMonIcon_Fidough[] = INCBIN_U8("graphics/pokemon/fidough/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Fidough[] = INCBIN_U8("graphics/pokemon/fidough/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/front.4bpp.lz"); const u32 gMonPalette_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/normal.gbapal.lz"); const u32 gMonBackPic_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/back.4bpp.lz"); const u32 gMonShinyPalette_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/shiny.gbapal.lz"); const u8 gMonIcon_Dachsbun[] = INCBIN_U8("graphics/pokemon/dachsbun/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Dachsbun[] = INCBIN_U8("graphics/pokemon/dachsbun/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FIDOUGH #if P_FAMILY_SMOLIV @@ -10135,31 +12033,39 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/back.4bpp.lz"); const u32 gMonShinyPalette_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/shiny.gbapal.lz"); const u8 gMonIcon_Smoliv[] = INCBIN_U8("graphics/pokemon/smoliv/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Smoliv[] = INCBIN_U8("graphics/pokemon/smoliv/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/front.4bpp.lz"); const u32 gMonPalette_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/normal.gbapal.lz"); const u32 gMonBackPic_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/back.4bpp.lz"); const u32 gMonShinyPalette_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/shiny.gbapal.lz"); const u8 gMonIcon_Dolliv[] = INCBIN_U8("graphics/pokemon/dolliv/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Dolliv[] = INCBIN_U8("graphics/pokemon/dolliv/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/front.4bpp.lz"); const u32 gMonPalette_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/normal.gbapal.lz"); const u32 gMonBackPic_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/back.4bpp.lz"); const u32 gMonShinyPalette_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/shiny.gbapal.lz"); const u8 gMonIcon_Arboliva[] = INCBIN_U8("graphics/pokemon/arboliva/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Arboliva[] = INCBIN_U8("graphics/pokemon/arboliva/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SMOLIV #if P_FAMILY_SQUAWKABILLY const u32 gMonFrontPic_Squawkabilly[] = INCBIN_U32("graphics/pokemon/squawkabilly/front.4bpp.lz"); const u32 gMonBackPic_Squawkabilly[] = INCBIN_U32("graphics/pokemon/squawkabilly/back.4bpp.lz"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Squawkabilly[] = INCBIN_U8("graphics/pokemon/squawkabilly/footprint.1bpp"); +#endif //P_FOOTPRINTS - const u32 gMonPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/green_plumage/normal.gbapal.lz"); - const u32 gMonShinyPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/green_plumage/shiny.gbapal.lz"); - const u8 gMonIcon_SquawkabillyGreenPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/green_plumage/icon.4bpp"); + const u32 gMonPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyGreenPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/icon.4bpp"); const u32 gMonPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/normal.gbapal.lz"); const u32 gMonShinyPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/shiny.gbapal.lz"); @@ -10180,21 +12086,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/back.4bpp.lz"); const u32 gMonShinyPalette_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/shiny.gbapal.lz"); const u8 gMonIcon_Nacli[] = INCBIN_U8("graphics/pokemon/nacli/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Nacli[] = INCBIN_U8("graphics/pokemon/nacli/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/front.4bpp.lz"); const u32 gMonPalette_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/normal.gbapal.lz"); const u32 gMonBackPic_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/back.4bpp.lz"); const u32 gMonShinyPalette_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/shiny.gbapal.lz"); const u8 gMonIcon_Naclstack[] = INCBIN_U8("graphics/pokemon/naclstack/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Naclstack[] = INCBIN_U8("graphics/pokemon/naclstack/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/front.4bpp.lz"); const u32 gMonPalette_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/normal.gbapal.lz"); const u32 gMonBackPic_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/back.4bpp.lz"); const u32 gMonShinyPalette_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/shiny.gbapal.lz"); const u8 gMonIcon_Garganacl[] = INCBIN_U8("graphics/pokemon/garganacl/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Garganacl[] = INCBIN_U8("graphics/pokemon/garganacl/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_NACLI #if P_FAMILY_CHARCADET @@ -10203,21 +12115,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/back.4bpp.lz"); const u32 gMonShinyPalette_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/shiny.gbapal.lz"); const u8 gMonIcon_Charcadet[] = INCBIN_U8("graphics/pokemon/charcadet/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Charcadet[] = INCBIN_U8("graphics/pokemon/charcadet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/front.4bpp.lz"); const u32 gMonPalette_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/normal.gbapal.lz"); const u32 gMonBackPic_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/back.4bpp.lz"); const u32 gMonShinyPalette_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/shiny.gbapal.lz"); const u8 gMonIcon_Armarouge[] = INCBIN_U8("graphics/pokemon/armarouge/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Armarouge[] = INCBIN_U8("graphics/pokemon/armarouge/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/front.4bpp.lz"); const u32 gMonPalette_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/normal.gbapal.lz"); const u32 gMonBackPic_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/back.4bpp.lz"); const u32 gMonShinyPalette_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/shiny.gbapal.lz"); const u8 gMonIcon_Ceruledge[] = INCBIN_U8("graphics/pokemon/ceruledge/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Ceruledge[] = INCBIN_U8("graphics/pokemon/ceruledge/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHARCADET #if P_FAMILY_TADBULB @@ -10226,14 +12144,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/back.4bpp.lz"); const u32 gMonShinyPalette_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/shiny.gbapal.lz"); const u8 gMonIcon_Tadbulb[] = INCBIN_U8("graphics/pokemon/tadbulb/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tadbulb[] = INCBIN_U8("graphics/pokemon/tadbulb/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/front.4bpp.lz"); const u32 gMonPalette_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/normal.gbapal.lz"); const u32 gMonBackPic_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/back.4bpp.lz"); const u32 gMonShinyPalette_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/shiny.gbapal.lz"); const u8 gMonIcon_Bellibolt[] = INCBIN_U8("graphics/pokemon/bellibolt/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Bellibolt[] = INCBIN_U8("graphics/pokemon/bellibolt/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TADBULB #if P_FAMILY_WATTREL @@ -10242,14 +12164,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/back.4bpp.lz"); const u32 gMonShinyPalette_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/shiny.gbapal.lz"); const u8 gMonIcon_Wattrel[] = INCBIN_U8("graphics/pokemon/wattrel/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Wattrel[] = INCBIN_U8("graphics/pokemon/wattrel/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/front.4bpp.lz"); const u32 gMonPalette_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/normal.gbapal.lz"); const u32 gMonBackPic_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/back.4bpp.lz"); const u32 gMonShinyPalette_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/shiny.gbapal.lz"); const u8 gMonIcon_Kilowattrel[] = INCBIN_U8("graphics/pokemon/kilowattrel/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Kilowattrel[] = INCBIN_U8("graphics/pokemon/kilowattrel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WATTREL #if P_FAMILY_MASCHIFF @@ -10258,14 +12184,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/back.4bpp.lz"); const u32 gMonShinyPalette_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/shiny.gbapal.lz"); const u8 gMonIcon_Maschiff[] = INCBIN_U8("graphics/pokemon/maschiff/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Maschiff[] = INCBIN_U8("graphics/pokemon/maschiff/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/front.4bpp.lz"); const u32 gMonPalette_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/normal.gbapal.lz"); const u32 gMonBackPic_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/back.4bpp.lz"); const u32 gMonShinyPalette_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/shiny.gbapal.lz"); const u8 gMonIcon_Mabosstiff[] = INCBIN_U8("graphics/pokemon/mabosstiff/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Mabosstiff[] = INCBIN_U8("graphics/pokemon/mabosstiff/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MASCHIFF #if P_FAMILY_SHROODLE @@ -10274,14 +12204,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/back.4bpp.lz"); const u32 gMonShinyPalette_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/shiny.gbapal.lz"); const u8 gMonIcon_Shroodle[] = INCBIN_U8("graphics/pokemon/shroodle/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Shroodle[] = INCBIN_U8("graphics/pokemon/shroodle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/front.4bpp.lz"); const u32 gMonPalette_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/normal.gbapal.lz"); const u32 gMonBackPic_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/back.4bpp.lz"); const u32 gMonShinyPalette_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/shiny.gbapal.lz"); const u8 gMonIcon_Grafaiai[] = INCBIN_U8("graphics/pokemon/grafaiai/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Grafaiai[] = INCBIN_U8("graphics/pokemon/grafaiai/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SHROODLE #if P_FAMILY_BRAMBLIN @@ -10290,14 +12224,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/back.4bpp.lz"); const u32 gMonShinyPalette_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/shiny.gbapal.lz"); const u8 gMonIcon_Bramblin[] = INCBIN_U8("graphics/pokemon/bramblin/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Bramblin[] = INCBIN_U8("graphics/pokemon/bramblin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/front.4bpp.lz"); const u32 gMonPalette_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/normal.gbapal.lz"); const u32 gMonBackPic_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/back.4bpp.lz"); const u32 gMonShinyPalette_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/shiny.gbapal.lz"); const u8 gMonIcon_Brambleghast[] = INCBIN_U8("graphics/pokemon/brambleghast/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Brambleghast[] = INCBIN_U8("graphics/pokemon/brambleghast/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BRAMBLIN #if P_FAMILY_TOEDSCOOL @@ -10306,14 +12244,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/back.4bpp.lz"); const u32 gMonShinyPalette_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/shiny.gbapal.lz"); const u8 gMonIcon_Toedscool[] = INCBIN_U8("graphics/pokemon/toedscool/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Toedscool[] = INCBIN_U8("graphics/pokemon/toedscool/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/front.4bpp.lz"); const u32 gMonPalette_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/normal.gbapal.lz"); const u32 gMonBackPic_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/back.4bpp.lz"); const u32 gMonShinyPalette_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/shiny.gbapal.lz"); const u8 gMonIcon_Toedscruel[] = INCBIN_U8("graphics/pokemon/toedscruel/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Toedscruel[] = INCBIN_U8("graphics/pokemon/toedscruel/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TOEDSCOOL #if P_FAMILY_KLAWF @@ -10322,7 +12264,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/back.4bpp.lz"); const u32 gMonShinyPalette_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/shiny.gbapal.lz"); const u8 gMonIcon_Klawf[] = INCBIN_U8("graphics/pokemon/klawf/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Klawf[] = INCBIN_U8("graphics/pokemon/klawf/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KLAWF #if P_FAMILY_CAPSAKID @@ -10331,14 +12275,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/back.4bpp.lz"); const u32 gMonShinyPalette_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/shiny.gbapal.lz"); const u8 gMonIcon_Capsakid[] = INCBIN_U8("graphics/pokemon/capsakid/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Capsakid[] = INCBIN_U8("graphics/pokemon/capsakid/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/front.4bpp.lz"); const u32 gMonPalette_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/normal.gbapal.lz"); const u32 gMonBackPic_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/back.4bpp.lz"); const u32 gMonShinyPalette_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/shiny.gbapal.lz"); const u8 gMonIcon_Scovillain[] = INCBIN_U8("graphics/pokemon/scovillain/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Scovillain[] = INCBIN_U8("graphics/pokemon/scovillain/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CAPSAKID #if P_FAMILY_RELLOR @@ -10347,14 +12295,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/back.4bpp.lz"); const u32 gMonShinyPalette_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/shiny.gbapal.lz"); const u8 gMonIcon_Rellor[] = INCBIN_U8("graphics/pokemon/rellor/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Rellor[] = INCBIN_U8("graphics/pokemon/rellor/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/front.4bpp.lz"); const u32 gMonPalette_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/normal.gbapal.lz"); const u32 gMonBackPic_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/back.4bpp.lz"); const u32 gMonShinyPalette_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/shiny.gbapal.lz"); const u8 gMonIcon_Rabsca[] = INCBIN_U8("graphics/pokemon/rabsca/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Rabsca[] = INCBIN_U8("graphics/pokemon/rabsca/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_RELLOR #if P_FAMILY_FLITTLE @@ -10363,14 +12315,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/back.4bpp.lz"); const u32 gMonShinyPalette_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/shiny.gbapal.lz"); const u8 gMonIcon_Flittle[] = INCBIN_U8("graphics/pokemon/flittle/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Flittle[] = INCBIN_U8("graphics/pokemon/flittle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/front.4bpp.lz"); const u32 gMonPalette_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/normal.gbapal.lz"); const u32 gMonBackPic_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/back.4bpp.lz"); const u32 gMonShinyPalette_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/shiny.gbapal.lz"); const u8 gMonIcon_Espathra[] = INCBIN_U8("graphics/pokemon/espathra/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Espathra[] = INCBIN_U8("graphics/pokemon/espathra/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FLITTLE #if P_FAMILY_TINKATINK @@ -10379,21 +12335,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/back.4bpp.lz"); const u32 gMonShinyPalette_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/shiny.gbapal.lz"); const u8 gMonIcon_Tinkatink[] = INCBIN_U8("graphics/pokemon/tinkatink/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tinkatink[] = INCBIN_U8("graphics/pokemon/tinkatink/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/front.4bpp.lz"); const u32 gMonPalette_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/normal.gbapal.lz"); const u32 gMonBackPic_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/back.4bpp.lz"); const u32 gMonShinyPalette_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/shiny.gbapal.lz"); const u8 gMonIcon_Tinkatuff[] = INCBIN_U8("graphics/pokemon/tinkatuff/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tinkatuff[] = INCBIN_U8("graphics/pokemon/tinkatuff/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/front.4bpp.lz"); const u32 gMonPalette_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/normal.gbapal.lz"); const u32 gMonBackPic_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/back.4bpp.lz"); const u32 gMonShinyPalette_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/shiny.gbapal.lz"); const u8 gMonIcon_Tinkaton[] = INCBIN_U8("graphics/pokemon/tinkaton/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tinkaton[] = INCBIN_U8("graphics/pokemon/tinkaton/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TINKATINK #if P_FAMILY_WIGLETT @@ -10402,14 +12364,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/back.4bpp.lz"); const u32 gMonShinyPalette_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/shiny.gbapal.lz"); const u8 gMonIcon_Wiglett[] = INCBIN_U8("graphics/pokemon/wiglett/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Wiglett[] = INCBIN_U8("graphics/pokemon/wiglett/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/front.4bpp.lz"); const u32 gMonPalette_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/normal.gbapal.lz"); const u32 gMonBackPic_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/back.4bpp.lz"); const u32 gMonShinyPalette_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/shiny.gbapal.lz"); const u8 gMonIcon_Wugtrio[] = INCBIN_U8("graphics/pokemon/wugtrio/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Wugtrio[] = INCBIN_U8("graphics/pokemon/wugtrio/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WIGLETT #if P_FAMILY_BOMBIRDIER @@ -10418,7 +12384,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/back.4bpp.lz"); const u32 gMonShinyPalette_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/shiny.gbapal.lz"); const u8 gMonIcon_Bombirdier[] = INCBIN_U8("graphics/pokemon/bombirdier/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Bombirdier[] = INCBIN_U8("graphics/pokemon/bombirdier/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BOMBIRDIER #if P_FAMILY_FINIZEN @@ -10427,14 +12395,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/back.4bpp.lz"); const u32 gMonShinyPalette_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/shiny.gbapal.lz"); const u8 gMonIcon_Finizen[] = INCBIN_U8("graphics/pokemon/finizen/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Finizen[] = INCBIN_U8("graphics/pokemon/finizen/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/front.4bpp.lz"); const u32 gMonPalette_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/normal.gbapal.lz"); const u32 gMonBackPic_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/back.4bpp.lz"); const u32 gMonShinyPalette_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/shiny.gbapal.lz"); const u8 gMonIcon_PalafinZero[] = INCBIN_U8("graphics/pokemon/palafin/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Palafin[] = INCBIN_U8("graphics/pokemon/palafin/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/front.4bpp.lz"); const u32 gMonPalette_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/normal.gbapal.lz"); @@ -10449,14 +12421,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/back.4bpp.lz"); const u32 gMonShinyPalette_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/shiny.gbapal.lz"); const u8 gMonIcon_Varoom[] = INCBIN_U8("graphics/pokemon/varoom/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Varoom[] = INCBIN_U8("graphics/pokemon/varoom/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/front.4bpp.lz"); const u32 gMonPalette_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/normal.gbapal.lz"); const u32 gMonBackPic_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/back.4bpp.lz"); const u32 gMonShinyPalette_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/shiny.gbapal.lz"); const u8 gMonIcon_Revavroom[] = INCBIN_U8("graphics/pokemon/revavroom/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Revavroom[] = INCBIN_U8("graphics/pokemon/revavroom/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VAROOM #if P_FAMILY_CYCLIZAR @@ -10465,7 +12441,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/back.4bpp.lz"); const u32 gMonShinyPalette_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/shiny.gbapal.lz"); const u8 gMonIcon_Cyclizar[] = INCBIN_U8("graphics/pokemon/cyclizar/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Cyclizar[] = INCBIN_U8("graphics/pokemon/cyclizar/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CYCLIZAR #if P_FAMILY_ORTHWORM @@ -10474,7 +12452,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/back.4bpp.lz"); const u32 gMonShinyPalette_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/shiny.gbapal.lz"); const u8 gMonIcon_Orthworm[] = INCBIN_U8("graphics/pokemon/orthworm/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Orthworm[] = INCBIN_U8("graphics/pokemon/orthworm/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ORTHWORM #if P_FAMILY_GLIMMET @@ -10483,14 +12463,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/back.4bpp.lz"); const u32 gMonShinyPalette_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/shiny.gbapal.lz"); const u8 gMonIcon_Glimmet[] = INCBIN_U8("graphics/pokemon/glimmet/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Glimmet[] = INCBIN_U8("graphics/pokemon/glimmet/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/front.4bpp.lz"); const u32 gMonPalette_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/normal.gbapal.lz"); const u32 gMonBackPic_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/back.4bpp.lz"); const u32 gMonShinyPalette_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/shiny.gbapal.lz"); const u8 gMonIcon_Glimmora[] = INCBIN_U8("graphics/pokemon/glimmora/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Glimmora[] = INCBIN_U8("graphics/pokemon/glimmora/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GLIMMET #if P_FAMILY_GREAVARD @@ -10499,14 +12483,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/back.4bpp.lz"); const u32 gMonShinyPalette_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/shiny.gbapal.lz"); const u8 gMonIcon_Greavard[] = INCBIN_U8("graphics/pokemon/greavard/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Greavard[] = INCBIN_U8("graphics/pokemon/greavard/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/front.4bpp.lz"); const u32 gMonPalette_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/normal.gbapal.lz"); const u32 gMonBackPic_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/back.4bpp.lz"); const u32 gMonShinyPalette_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/shiny.gbapal.lz"); const u8 gMonIcon_Houndstone[] = INCBIN_U8("graphics/pokemon/houndstone/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Houndstone[] = INCBIN_U8("graphics/pokemon/houndstone/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GREAVARD #if P_FAMILY_FLAMIGO @@ -10515,7 +12503,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/back.4bpp.lz"); const u32 gMonShinyPalette_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/shiny.gbapal.lz"); const u8 gMonIcon_Flamigo[] = INCBIN_U8("graphics/pokemon/flamigo/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Flamigo[] = INCBIN_U8("graphics/pokemon/flamigo/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FLAMIGO #if P_FAMILY_CETODDLE @@ -10524,14 +12514,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/back.4bpp.lz"); const u32 gMonShinyPalette_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/shiny.gbapal.lz"); const u8 gMonIcon_Cetoddle[] = INCBIN_U8("graphics/pokemon/cetoddle/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Cetoddle[] = INCBIN_U8("graphics/pokemon/cetoddle/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/front.4bpp.lz"); const u32 gMonPalette_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/normal.gbapal.lz"); const u32 gMonBackPic_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/back.4bpp.lz"); const u32 gMonShinyPalette_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/shiny.gbapal.lz"); const u8 gMonIcon_Cetitan[] = INCBIN_U8("graphics/pokemon/cetitan/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Cetitan[] = INCBIN_U8("graphics/pokemon/cetitan/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CETODDLE #if P_FAMILY_VELUZA @@ -10540,7 +12534,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/back.4bpp.lz"); const u32 gMonShinyPalette_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/shiny.gbapal.lz"); const u8 gMonIcon_Veluza[] = INCBIN_U8("graphics/pokemon/veluza/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Veluza[] = INCBIN_U8("graphics/pokemon/veluza/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_VELUZA #if P_FAMILY_DONDOZO @@ -10549,16 +12545,20 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/back.4bpp.lz"); const u32 gMonShinyPalette_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/shiny.gbapal.lz"); const u8 gMonIcon_Dondozo[] = INCBIN_U8("graphics/pokemon/dondozo/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Dondozo[] = INCBIN_U8("graphics/pokemon/dondozo/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_DONDOZO #if P_FAMILY_TATSUGIRI - const u32 gMonFrontPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/front.4bpp.lz"); - const u32 gMonPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/normal.gbapal.lz"); - const u32 gMonBackPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/back.4bpp.lz"); - const u32 gMonShinyPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/shiny.gbapal.lz"); - const u8 gMonIcon_TatsugiriCurly[] = INCBIN_U8("graphics/pokemon/tatsugiri/curly/icon.4bpp"); + const u32 gMonFrontPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/front.4bpp.lz"); + const u32 gMonPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/normal.gbapal.lz"); + const u32 gMonBackPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/back.4bpp.lz"); + const u32 gMonShinyPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/shiny.gbapal.lz"); + const u8 gMonIcon_TatsugiriCurly[] = INCBIN_U8("graphics/pokemon/tatsugiri/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Tatsugiri[] = INCBIN_U8("graphics/pokemon/tatsugiri/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/front.4bpp.lz"); const u32 gMonPalette_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/normal.gbapal.lz"); @@ -10579,7 +12579,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/back.4bpp.lz"); const u32 gMonShinyPalette_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/shiny.gbapal.lz"); const u8 gMonIcon_GreatTusk[] = INCBIN_U8("graphics/pokemon/great_tusk/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_GreatTusk[] = INCBIN_U8("graphics/pokemon/great_tusk/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GREAT_TUSK #if P_FAMILY_SCREAM_TAIL @@ -10588,7 +12590,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/back.4bpp.lz"); const u32 gMonShinyPalette_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/shiny.gbapal.lz"); const u8 gMonIcon_ScreamTail[] = INCBIN_U8("graphics/pokemon/scream_tail/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_ScreamTail[] = INCBIN_U8("graphics/pokemon/scream_tail/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SCREAM_TAIL #if P_FAMILY_BRUTE_BONNET @@ -10597,7 +12601,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/back.4bpp.lz"); const u32 gMonShinyPalette_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/shiny.gbapal.lz"); const u8 gMonIcon_BruteBonnet[] = INCBIN_U8("graphics/pokemon/brute_bonnet/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_BruteBonnet[] = INCBIN_U8("graphics/pokemon/brute_bonnet/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_BRUTE_BONNET #if P_FAMILY_FLUTTER_MANE @@ -10606,7 +12612,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/back.4bpp.lz"); const u32 gMonShinyPalette_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/shiny.gbapal.lz"); const u8 gMonIcon_FlutterMane[] = INCBIN_U8("graphics/pokemon/flutter_mane/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_FlutterMane[] = INCBIN_U8("graphics/pokemon/flutter_mane/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FLUTTER_MANE #if P_FAMILY_SLITHER_WING @@ -10615,7 +12623,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/back.4bpp.lz"); const u32 gMonShinyPalette_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/shiny.gbapal.lz"); const u8 gMonIcon_SlitherWing[] = INCBIN_U8("graphics/pokemon/slither_wing/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_SlitherWing[] = INCBIN_U8("graphics/pokemon/slither_wing/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SLITHER_WING #if P_FAMILY_SANDY_SHOCKS @@ -10624,7 +12634,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/back.4bpp.lz"); const u32 gMonShinyPalette_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/shiny.gbapal.lz"); const u8 gMonIcon_SandyShocks[] = INCBIN_U8("graphics/pokemon/sandy_shocks/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_SandyShocks[] = INCBIN_U8("graphics/pokemon/sandy_shocks/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_SANDY_SHOCKS #if P_FAMILY_IRON_TREADS @@ -10633,7 +12645,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/back.4bpp.lz"); const u32 gMonShinyPalette_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/shiny.gbapal.lz"); const u8 gMonIcon_IronTreads[] = INCBIN_U8("graphics/pokemon/iron_treads/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronTreads[] = INCBIN_U8("graphics/pokemon/iron_treads/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_TREADS #if P_FAMILY_IRON_BUNDLE @@ -10642,7 +12656,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/back.4bpp.lz"); const u32 gMonShinyPalette_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/shiny.gbapal.lz"); const u8 gMonIcon_IronBundle[] = INCBIN_U8("graphics/pokemon/iron_bundle/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronBundle[] = INCBIN_U8("graphics/pokemon/iron_bundle/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_BUNDLE #if P_FAMILY_IRON_HANDS @@ -10651,7 +12667,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/back.4bpp.lz"); const u32 gMonShinyPalette_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/shiny.gbapal.lz"); const u8 gMonIcon_IronHands[] = INCBIN_U8("graphics/pokemon/iron_hands/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronHands[] = INCBIN_U8("graphics/pokemon/iron_hands/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_HANDS #if P_FAMILY_IRON_JUGULIS @@ -10660,7 +12678,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/back.4bpp.lz"); const u32 gMonShinyPalette_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/shiny.gbapal.lz"); const u8 gMonIcon_IronJugulis[] = INCBIN_U8("graphics/pokemon/iron_jugulis/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronJugulis[] = INCBIN_U8("graphics/pokemon/iron_jugulis/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_JUGULIS #if P_FAMILY_IRON_MOTH @@ -10669,7 +12689,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/back.4bpp.lz"); const u32 gMonShinyPalette_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/shiny.gbapal.lz"); const u8 gMonIcon_IronMoth[] = INCBIN_U8("graphics/pokemon/iron_moth/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronMoth[] = INCBIN_U8("graphics/pokemon/iron_moth/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_MOTH #if P_FAMILY_IRON_THORNS @@ -10678,7 +12700,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/back.4bpp.lz"); const u32 gMonShinyPalette_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/shiny.gbapal.lz"); const u8 gMonIcon_IronThorns[] = INCBIN_U8("graphics/pokemon/iron_thorns/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronThorns[] = INCBIN_U8("graphics/pokemon/iron_thorns/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_THORNS #if P_FAMILY_FRIGIBAX @@ -10687,21 +12711,27 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/back.4bpp.lz"); const u32 gMonShinyPalette_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/shiny.gbapal.lz"); const u8 gMonIcon_Frigibax[] = INCBIN_U8("graphics/pokemon/frigibax/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Frigibax[] = INCBIN_U8("graphics/pokemon/frigibax/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/front.4bpp.lz"); const u32 gMonPalette_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/normal.gbapal.lz"); const u32 gMonBackPic_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/back.4bpp.lz"); const u32 gMonShinyPalette_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/shiny.gbapal.lz"); const u8 gMonIcon_Arctibax[] = INCBIN_U8("graphics/pokemon/arctibax/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Arctibax[] = INCBIN_U8("graphics/pokemon/arctibax/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/front.4bpp.lz"); const u32 gMonPalette_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/normal.gbapal.lz"); const u32 gMonBackPic_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/back.4bpp.lz"); const u32 gMonShinyPalette_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/shiny.gbapal.lz"); const u8 gMonIcon_Baxcalibur[] = INCBIN_U8("graphics/pokemon/baxcalibur/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Baxcalibur[] = INCBIN_U8("graphics/pokemon/baxcalibur/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL @@ -10710,7 +12740,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/back.4bpp.lz"); const u32 gMonShinyPalette_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/shiny.gbapal.lz"); const u8 gMonIcon_GimmighoulChest[] = INCBIN_U8("graphics/pokemon/gimmighoul/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Gimmighoul[] = INCBIN_U8("graphics/pokemon/gimmighoul/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/front.4bpp.lz"); const u32 gMonPalette_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/normal.gbapal.lz"); @@ -10723,7 +12755,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/back.4bpp.lz"); const u32 gMonShinyPalette_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/shiny.gbapal.lz"); const u8 gMonIcon_Gholdengo[] = INCBIN_U8("graphics/pokemon/gholdengo/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Gholdengo[] = INCBIN_U8("graphics/pokemon/gholdengo/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_GIMMIGHOUL #if P_FAMILY_WO_CHIEN @@ -10732,7 +12766,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/back.4bpp.lz"); const u32 gMonShinyPalette_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/shiny.gbapal.lz"); const u8 gMonIcon_WoChien[] = INCBIN_U8("graphics/pokemon/wo_chien/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_WoChien[] = INCBIN_U8("graphics/pokemon/wo_chien/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WO_CHIEN #if P_FAMILY_CHIEN_PAO @@ -10741,7 +12777,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/back.4bpp.lz"); const u32 gMonShinyPalette_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/shiny.gbapal.lz"); const u8 gMonIcon_ChienPao[] = INCBIN_U8("graphics/pokemon/chien_pao/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_ChienPao[] = INCBIN_U8("graphics/pokemon/chien_pao/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHIEN_PAO #if P_FAMILY_TING_LU @@ -10750,7 +12788,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/back.4bpp.lz"); const u32 gMonShinyPalette_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/shiny.gbapal.lz"); const u8 gMonIcon_TingLu[] = INCBIN_U8("graphics/pokemon/ting_lu/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_TingLu[] = INCBIN_U8("graphics/pokemon/ting_lu/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_TING_LU #if P_FAMILY_CHI_YU @@ -10759,7 +12799,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/back.4bpp.lz"); const u32 gMonShinyPalette_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/shiny.gbapal.lz"); const u8 gMonIcon_ChiYu[] = INCBIN_U8("graphics/pokemon/chi_yu/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_ChiYu[] = INCBIN_U8("graphics/pokemon/chi_yu/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_CHI_YU #if P_FAMILY_ROARING_MOON @@ -10768,7 +12810,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/back.4bpp.lz"); const u32 gMonShinyPalette_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/shiny.gbapal.lz"); const u8 gMonIcon_RoaringMoon[] = INCBIN_U8("graphics/pokemon/roaring_moon/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_RoaringMoon[] = INCBIN_U8("graphics/pokemon/roaring_moon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_ROARING_MOON #if P_FAMILY_IRON_VALIANT @@ -10777,7 +12821,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/back.4bpp.lz"); const u32 gMonShinyPalette_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/shiny.gbapal.lz"); const u8 gMonIcon_IronValiant[] = INCBIN_U8("graphics/pokemon/iron_valiant/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronValiant[] = INCBIN_U8("graphics/pokemon/iron_valiant/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_VALIANT #if P_FAMILY_KORAIDON @@ -10786,7 +12832,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/back.4bpp.lz"); const u32 gMonShinyPalette_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/shiny.gbapal.lz"); const u8 gMonIcon_Koraidon[] = INCBIN_U8("graphics/pokemon/koraidon/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Koraidon[] = INCBIN_U8("graphics/pokemon/koraidon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_KORAIDON #if P_FAMILY_MIRAIDON @@ -10795,7 +12843,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/back.4bpp.lz"); const u32 gMonShinyPalette_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/shiny.gbapal.lz"); const u8 gMonIcon_Miraidon[] = INCBIN_U8("graphics/pokemon/miraidon/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Miraidon[] = INCBIN_U8("graphics/pokemon/miraidon/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MIRAIDON #if P_FAMILY_WALKING_WAKE @@ -10804,7 +12854,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/back.4bpp.lz"); const u32 gMonShinyPalette_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/shiny.gbapal.lz"); const u8 gMonIcon_WalkingWake[] = INCBIN_U8("graphics/pokemon/walking_wake/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_WalkingWake[] = INCBIN_U8("graphics/pokemon/walking_wake/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_WALKING_WAKE #if P_FAMILY_IRON_LEAVES @@ -10813,7 +12865,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/back.4bpp.lz"); const u32 gMonShinyPalette_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/shiny.gbapal.lz"); const u8 gMonIcon_IronLeaves[] = INCBIN_U8("graphics/pokemon/iron_leaves/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_IronLeaves[] = INCBIN_U8("graphics/pokemon/iron_leaves/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_IRON_LEAVES #if P_FAMILY_POLTCHAGEIST @@ -10822,14 +12876,18 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/back.4bpp.lz"); const u32 gMonShinyPalette_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/shiny.gbapal.lz"); const u8 gMonIcon_Poltchageist[] = INCBIN_U8("graphics/pokemon/poltchageist/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Poltchageist[] = INCBIN_U8("graphics/pokemon/poltchageist/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/front.4bpp.lz"); const u32 gMonPalette_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/normal.gbapal.lz"); const u32 gMonBackPic_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/back.4bpp.lz"); const u32 gMonShinyPalette_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/shiny.gbapal.lz"); const u8 gMonIcon_Sinistcha[] = INCBIN_U8("graphics/pokemon/sinistcha/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Sinistcha[] = INCBIN_U8("graphics/pokemon/sinistcha/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_POLTCHAGEIST #if P_FAMILY_OKIDOGI @@ -10838,7 +12896,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/back.4bpp.lz"); const u32 gMonShinyPalette_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/shiny.gbapal.lz"); const u8 gMonIcon_Okidogi[] = INCBIN_U8("graphics/pokemon/okidogi/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Okidogi[] = INCBIN_U8("graphics/pokemon/okidogi/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_OKIDOGI #if P_FAMILY_MUNKIDORI @@ -10847,7 +12907,9 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/back.4bpp.lz"); const u32 gMonShinyPalette_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/shiny.gbapal.lz"); const u8 gMonIcon_Munkidori[] = INCBIN_U8("graphics/pokemon/munkidori/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Munkidori[] = INCBIN_U8("graphics/pokemon/munkidori/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_MUNKIDORI #if P_FAMILY_FEZANDIPITI @@ -10856,34 +12918,38 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonBackPic_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/back.4bpp.lz"); const u32 gMonShinyPalette_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/shiny.gbapal.lz"); const u8 gMonIcon_Fezandipiti[] = INCBIN_U8("graphics/pokemon/fezandipiti/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Fezandipiti[] = INCBIN_U8("graphics/pokemon/fezandipiti/footprint.1bpp"); +#endif //P_FOOTPRINTS #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON const u32 gMonFrontPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/front.4bpp.lz"); const u32 gMonPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/normal.gbapal.lz"); const u32 gMonBackPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/back.4bpp.lz"); - // const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz"); + const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz"); const u8 gMonIcon_OgerponTealMask[] = INCBIN_U8("graphics/pokemon/ogerpon/icon.4bpp"); +#if P_FOOTPRINTS // const u8 gMonFootprint_Ogerpon[] = INCBIN_U8("graphics/pokemon/ogerpon/footprint.1bpp"); +#endif //P_FOOTPRINTS const u32 gMonFrontPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/front.4bpp.lz"); const u32 gMonPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/normal.gbapal.lz"); const u32 gMonBackPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/back.4bpp.lz"); - // const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz"); - // const u8 gMonIcon_OgerponWellspringMask[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp"); + const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponWellspringMask[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp"); const u32 gMonFrontPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/front.4bpp.lz"); const u32 gMonPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/normal.gbapal.lz"); const u32 gMonBackPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/back.4bpp.lz"); - // const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz"); - // const u8 gMonIcon_OgerponHearthflameMask[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp"); + const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponHearthflameMask[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp"); const u32 gMonFrontPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/front.4bpp.lz"); const u32 gMonPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/normal.gbapal.lz"); const u32 gMonBackPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/back.4bpp.lz"); - // const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz"); - // const u8 gMonIcon_OgerponCornerstoneMask[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp"); + const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponCornerstoneMask[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp"); // const u32 gMonFrontPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/front.4bpp.lz"); // const u32 gMonPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/normal.gbapal.lz"); @@ -10906,6 +12972,84 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar // const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/shiny.gbapal.lz"); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + const u32 gMonFrontPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/front.4bpp.lz"); + const u32 gMonPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/normal.gbapal.lz"); + const u32 gMonBackPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/back.4bpp.lz"); + const u32 gMonShinyPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/shiny.gbapal.lz"); + const u8 gMonIcon_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + const u32 gMonFrontPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/front.4bpp.lz"); + const u32 gMonPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/normal.gbapal.lz"); + const u32 gMonBackPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/back.4bpp.lz"); + const u32 gMonShinyPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/shiny.gbapal.lz"); + const u8 gMonIcon_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + const u32 gMonFrontPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/front.4bpp.lz"); + const u32 gMonPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/normal.gbapal.lz"); + const u32 gMonBackPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/back.4bpp.lz"); + const u32 gMonShinyPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/shiny.gbapal.lz"); + const u8 gMonIcon_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + const u32 gMonFrontPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/front.4bpp.lz"); + const u32 gMonPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/normal.gbapal.lz"); + const u32 gMonBackPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/back.4bpp.lz"); + const u32 gMonShinyPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/shiny.gbapal.lz"); + const u8 gMonIcon_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS + // const u32 gMonFrontPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/shiny.gbapal.lz"); + const u8 gMonIcon_TerapagosNormal[] = INCBIN_U8("graphics/pokemon/terapagos/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_Terapagos[] = INCBIN_U8("graphics/pokemon/terapagos/footprint.1bpp"); +#endif //P_FOOTPRINTS + + // const u32 gMonFrontPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/shiny.gbapal.lz"); + const u8 gMonIcon_TerapagosTerastal[] = INCBIN_U8("graphics/pokemon/terapagos/terastal/icon.4bpp"); + + // const u32 gMonFrontPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/shiny.gbapal.lz"); + const u8 gMonIcon_TerapagosStellar[] = INCBIN_U8("graphics/pokemon/terapagos/stellar/icon.4bpp"); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + const u32 gMonFrontPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/front.4bpp.lz"); + const u32 gMonPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/normal.gbapal.lz"); + const u32 gMonBackPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/back.4bpp.lz"); + const u32 gMonShinyPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/shiny.gbapal.lz"); + const u8 gMonIcon_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/icon.4bpp"); +#if P_FOOTPRINTS + // const u8 gMonFootprint_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/footprint.1bpp"); +#endif //P_FOOTPRINTS +#endif //P_FAMILY_PECHARUNT + const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index b9d263173..9ae2c3ebd 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1,8 +1,12 @@ #if P_FAMILY_BULBASAUR static const u16 sVenusaurFormSpeciesIdTable[] = { SPECIES_VENUSAUR, +#if P_MEGA_EVOLUTIONS SPECIES_VENUSAUR_MEGA, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_VENUSAUR_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BULBASAUR @@ -10,9 +14,13 @@ static const u16 sVenusaurFormSpeciesIdTable[] = { #if P_FAMILY_CHARMANDER static const u16 sCharizardFormSpeciesIdTable[] = { SPECIES_CHARIZARD, +#if P_MEGA_EVOLUTIONS SPECIES_CHARIZARD_MEGA_X, SPECIES_CHARIZARD_MEGA_Y, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_CHARIZARD_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CHARMANDER @@ -20,8 +28,12 @@ static const u16 sCharizardFormSpeciesIdTable[] = { #if P_FAMILY_SQUIRTLE static const u16 sBlastoiseFormSpeciesIdTable[] = { SPECIES_BLASTOISE, +#if P_MEGA_EVOLUTIONS SPECIES_BLASTOISE_MEGA, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_BLASTOISE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SQUIRTLE @@ -29,7 +41,9 @@ static const u16 sBlastoiseFormSpeciesIdTable[] = { #if P_FAMILY_CATERPIE static const u16 sButterfreeFormSpeciesIdTable[] = { SPECIES_BUTTERFREE, +#if P_GIGANTAMAX_FORMS SPECIES_BUTTERFREE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CATERPIE @@ -37,7 +51,9 @@ static const u16 sButterfreeFormSpeciesIdTable[] = { #if P_FAMILY_WEEDLE static const u16 sBeedrillFormSpeciesIdTable[] = { SPECIES_BEEDRILL, +#if P_MEGA_EVOLUTIONS SPECIES_BEEDRILL_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_WEEDLE @@ -45,7 +61,9 @@ static const u16 sBeedrillFormSpeciesIdTable[] = { #if P_FAMILY_PIDGEY static const u16 sPidgeotFormSpeciesIdTable[] = { SPECIES_PIDGEOT, +#if P_MEGA_EVOLUTIONS SPECIES_PIDGEOT_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_PIDGEY @@ -53,13 +71,18 @@ static const u16 sPidgeotFormSpeciesIdTable[] = { #if P_FAMILY_RATTATA static const u16 sRattataFormSpeciesIdTable[] = { SPECIES_RATTATA, +#if P_ALOLAN_FORMS SPECIES_RATTATA_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sRaticateFormSpeciesIdTable[] = { SPECIES_RATICATE, +#if P_ALOLAN_FORMS SPECIES_RATICATE_ALOLAN, + SPECIES_RATICATE_ALOLAN_TOTEM, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_RATTATA @@ -75,12 +98,15 @@ static const u16 sPichuFormSpeciesIdTable[] = { static const u16 sPikachuFormSpeciesIdTable[] = { SPECIES_PIKACHU, +#if P_COSPLAY_PIKACHU_FORMS SPECIES_PIKACHU_COSPLAY, SPECIES_PIKACHU_ROCK_STAR, SPECIES_PIKACHU_BELLE, SPECIES_PIKACHU_POP_STAR, SPECIES_PIKACHU_PH_D, SPECIES_PIKACHU_LIBRE, +#endif +#if P_CAP_PIKACHU_FORMS SPECIES_PIKACHU_ORIGINAL_CAP, SPECIES_PIKACHU_HOENN_CAP, SPECIES_PIKACHU_SINNOH_CAP, @@ -89,13 +115,19 @@ static const u16 sPikachuFormSpeciesIdTable[] = { SPECIES_PIKACHU_ALOLA_CAP, SPECIES_PIKACHU_PARTNER_CAP, SPECIES_PIKACHU_WORLD_CAP, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_PIKACHU_GIGANTAMAX, +#endif + SPECIES_PIKACHU_PARTNER, FORM_SPECIES_END, }; static const u16 sRaichuFormSpeciesIdTable[] = { SPECIES_RAICHU, +#if P_ALOLAN_FORMS SPECIES_RAICHU_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_PIKACHU @@ -103,13 +135,17 @@ static const u16 sRaichuFormSpeciesIdTable[] = { #if P_FAMILY_SANDSHREW static const u16 sSandshrewFormSpeciesIdTable[] = { SPECIES_SANDSHREW, +#if P_ALOLAN_FORMS SPECIES_SANDSHREW_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sSandslashFormSpeciesIdTable[] = { SPECIES_SANDSLASH, +#if P_ALOLAN_FORMS SPECIES_SANDSLASH_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SANDSHREW @@ -117,13 +153,17 @@ static const u16 sSandslashFormSpeciesIdTable[] = { #if P_FAMILY_VULPIX static const u16 sVulpixFormSpeciesIdTable[] = { SPECIES_VULPIX, +#if P_ALOLAN_FORMS SPECIES_VULPIX_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sNinetalesFormSpeciesIdTable[] = { SPECIES_NINETALES, +#if P_ALOLAN_FORMS SPECIES_NINETALES_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_VULPIX @@ -131,13 +171,17 @@ static const u16 sNinetalesFormSpeciesIdTable[] = { #if P_FAMILY_DIGLETT static const u16 sDiglettFormSpeciesIdTable[] = { SPECIES_DIGLETT, +#if P_ALOLAN_FORMS SPECIES_DIGLETT_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sDugtrioFormSpeciesIdTable[] = { SPECIES_DUGTRIO, +#if P_ALOLAN_FORMS SPECIES_DUGTRIO_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_DIGLETT @@ -145,15 +189,23 @@ static const u16 sDugtrioFormSpeciesIdTable[] = { #if P_FAMILY_MEOWTH static const u16 sMeowthFormSpeciesIdTable[] = { SPECIES_MEOWTH, +#if P_ALOLAN_FORMS SPECIES_MEOWTH_ALOLAN, +#endif +#if P_GALARIAN_FORMS SPECIES_MEOWTH_GALARIAN, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_MEOWTH_GIGANTAMAX, +#endif FORM_SPECIES_END, }; static const u16 sPersianFormSpeciesIdTable[] = { SPECIES_PERSIAN, +#if P_ALOLAN_FORMS SPECIES_PERSIAN_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MEOWTH @@ -161,13 +213,17 @@ static const u16 sPersianFormSpeciesIdTable[] = { #if P_FAMILY_GROWLITHE static const u16 sGrowlitheFormSpeciesIdTable[] = { SPECIES_GROWLITHE, +#if P_HISUIAN_FORMS SPECIES_GROWLITHE_HISUIAN, +#endif FORM_SPECIES_END, }; static const u16 sArcanineFormSpeciesIdTable[] = { SPECIES_ARCANINE, +#if P_HISUIAN_FORMS SPECIES_ARCANINE_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GROWLITHE @@ -175,7 +231,9 @@ static const u16 sArcanineFormSpeciesIdTable[] = { #if P_FAMILY_ABRA static const u16 sAlakazamFormSpeciesIdTable[] = { SPECIES_ALAKAZAM, +#if P_MEGA_EVOLUTIONS SPECIES_ALAKAZAM_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ABRA @@ -183,7 +241,9 @@ static const u16 sAlakazamFormSpeciesIdTable[] = { #if P_FAMILY_MACHOP static const u16 sMachampFormSpeciesIdTable[] = { SPECIES_MACHAMP, +#if P_GIGANTAMAX_FORMS SPECIES_MACHAMP_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MACHOP @@ -191,19 +251,25 @@ static const u16 sMachampFormSpeciesIdTable[] = { #if P_FAMILY_GEODUDE static const u16 sGeodudeFormSpeciesIdTable[] = { SPECIES_GEODUDE, +#if P_ALOLAN_FORMS SPECIES_GEODUDE_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sGravelerFormSpeciesIdTable[] = { SPECIES_GRAVELER, +#if P_ALOLAN_FORMS SPECIES_GRAVELER_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sGolemFormSpeciesIdTable[] = { SPECIES_GOLEM, +#if P_ALOLAN_FORMS SPECIES_GOLEM_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GEODUDE @@ -211,13 +277,17 @@ static const u16 sGolemFormSpeciesIdTable[] = { #if P_FAMILY_PONYTA static const u16 sPonytaFormSpeciesIdTable[] = { SPECIES_PONYTA, +#if P_GALARIAN_FORMS SPECIES_PONYTA_GALARIAN, +#endif FORM_SPECIES_END, }; static const u16 sRapidashFormSpeciesIdTable[] = { SPECIES_RAPIDASH, +#if P_GALARIAN_FORMS SPECIES_RAPIDASH_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_PONYTA @@ -225,21 +295,29 @@ static const u16 sRapidashFormSpeciesIdTable[] = { #if P_FAMILY_SLOWPOKE static const u16 sSlowpokeFormSpeciesIdTable[] = { SPECIES_SLOWPOKE, +#if P_GALARIAN_FORMS SPECIES_SLOWPOKE_GALARIAN, +#endif FORM_SPECIES_END, }; static const u16 sSlowbroFormSpeciesIdTable[] = { SPECIES_SLOWBRO, +#if P_MEGA_EVOLUTIONS SPECIES_SLOWBRO_MEGA, +#endif +#if P_GALARIAN_FORMS SPECIES_SLOWBRO_GALARIAN, +#endif FORM_SPECIES_END, }; #if P_GEN_2_CROSS_EVOS static const u16 sSlowkingFormSpeciesIdTable[] = { SPECIES_SLOWKING, +#if P_GALARIAN_FORMS SPECIES_SLOWKING_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_GEN_2_CROSS_EVOS @@ -248,7 +326,9 @@ static const u16 sSlowkingFormSpeciesIdTable[] = { #if P_FAMILY_FARFETCHD static const u16 sFarfetchdFormSpeciesIdTable[] = { SPECIES_FARFETCHD, +#if P_GALARIAN_FORMS SPECIES_FARFETCHD_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_FARFETCHD @@ -256,13 +336,17 @@ static const u16 sFarfetchdFormSpeciesIdTable[] = { #if P_FAMILY_GRIMER static const u16 sGrimerFormSpeciesIdTable[] = { SPECIES_GRIMER, +#if P_ALOLAN_FORMS SPECIES_GRIMER_ALOLAN, +#endif FORM_SPECIES_END, }; static const u16 sMukFormSpeciesIdTable[] = { SPECIES_MUK, +#if P_ALOLAN_FORMS SPECIES_MUK_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GRIMER @@ -270,8 +354,12 @@ static const u16 sMukFormSpeciesIdTable[] = { #if P_FAMILY_GASTLY static const u16 sGengarFormSpeciesIdTable[] = { SPECIES_GENGAR, +#if P_MEGA_EVOLUTIONS SPECIES_GENGAR_MEGA, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_GENGAR_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GASTLY @@ -280,7 +368,9 @@ static const u16 sGengarFormSpeciesIdTable[] = { #if P_GEN_2_CROSS_EVOS static const u16 sSteelixFormSpeciesIdTable[] = { SPECIES_STEELIX, +#if P_MEGA_EVOLUTIONS SPECIES_STEELIX_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_GEN_2_CROSS_EVOS @@ -289,7 +379,9 @@ static const u16 sSteelixFormSpeciesIdTable[] = { #if P_FAMILY_KRABBY static const u16 sKinglerFormSpeciesIdTable[] = { SPECIES_KINGLER, +#if P_GIGANTAMAX_FORMS SPECIES_KINGLER_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_KRABBY @@ -297,13 +389,17 @@ static const u16 sKinglerFormSpeciesIdTable[] = { #if P_FAMILY_VOLTORB static const u16 sVoltorbFormSpeciesIdTable[] = { SPECIES_VOLTORB, +#if P_HISUIAN_FORMS SPECIES_VOLTORB_HISUIAN, +#endif FORM_SPECIES_END, }; static const u16 sElectrodeFormSpeciesIdTable[] = { SPECIES_ELECTRODE, +#if P_HISUIAN_FORMS SPECIES_ELECTRODE_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_VOLTORB @@ -311,7 +407,9 @@ static const u16 sElectrodeFormSpeciesIdTable[] = { #if P_FAMILY_EXEGGCUTE static const u16 sExeggutorFormSpeciesIdTable[] = { SPECIES_EXEGGUTOR, +#if P_ALOLAN_FORMS SPECIES_EXEGGUTOR_ALOLAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_EXEGGCUTE @@ -319,7 +417,10 @@ static const u16 sExeggutorFormSpeciesIdTable[] = { #if P_FAMILY_CUBONE static const u16 sMarowakFormSpeciesIdTable[] = { SPECIES_MAROWAK, +#if P_ALOLAN_FORMS SPECIES_MAROWAK_ALOLAN, + SPECIES_MAROWAK_ALOLAN_TOTEM, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CUBONE @@ -327,7 +428,9 @@ static const u16 sMarowakFormSpeciesIdTable[] = { #if P_FAMILY_KOFFING static const u16 sWeezingFormSpeciesIdTable[] = { SPECIES_WEEZING, +#if P_GALARIAN_FORMS SPECIES_WEEZING_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_KOFFING @@ -335,7 +438,9 @@ static const u16 sWeezingFormSpeciesIdTable[] = { #if P_FAMILY_KANGASKHAN static const u16 sKangaskhanFormSpeciesIdTable[] = { SPECIES_KANGASKHAN, +#if P_MEGA_EVOLUTIONS SPECIES_KANGASKHAN_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_KANGASKHAN @@ -343,7 +448,9 @@ static const u16 sKangaskhanFormSpeciesIdTable[] = { #if P_FAMILY_MR_MIME static const u16 sMrMimeFormSpeciesIdTable[] = { SPECIES_MR_MIME, +#if P_GALARIAN_FORMS SPECIES_MR_MIME_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MR_MIME @@ -352,7 +459,9 @@ static const u16 sMrMimeFormSpeciesIdTable[] = { #if P_GEN_2_CROSS_EVOS static const u16 sScizorFormSpeciesIdTable[] = { SPECIES_SCIZOR, +#if P_MEGA_EVOLUTIONS SPECIES_SCIZOR_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_GEN_2_CROSS_EVOS @@ -361,7 +470,9 @@ static const u16 sScizorFormSpeciesIdTable[] = { #if P_FAMILY_PINSIR static const u16 sPinsirFormSpeciesIdTable[] = { SPECIES_PINSIR, +#if P_MEGA_EVOLUTIONS SPECIES_PINSIR_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_PINSIR @@ -369,9 +480,11 @@ static const u16 sPinsirFormSpeciesIdTable[] = { #if P_FAMILY_TAUROS static const u16 sTaurosFormSpeciesIdTable[] = { SPECIES_TAUROS, +#if P_PALDEAN_FORMS SPECIES_TAUROS_PALDEAN_COMBAT_BREED, SPECIES_TAUROS_PALDEAN_BLAZE_BREED, SPECIES_TAUROS_PALDEAN_AQUA_BREED, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_TAUROS @@ -379,7 +492,9 @@ static const u16 sTaurosFormSpeciesIdTable[] = { #if P_FAMILY_MAGIKARP static const u16 sGyaradosFormSpeciesIdTable[] = { SPECIES_GYARADOS, +#if P_MEGA_EVOLUTIONS SPECIES_GYARADOS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MAGIKARP @@ -387,7 +502,9 @@ static const u16 sGyaradosFormSpeciesIdTable[] = { #if P_FAMILY_LAPRAS static const u16 sLaprasFormSpeciesIdTable[] = { SPECIES_LAPRAS, +#if P_GIGANTAMAX_FORMS SPECIES_LAPRAS_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_LAPRAS @@ -395,7 +512,10 @@ static const u16 sLaprasFormSpeciesIdTable[] = { #if P_FAMILY_EEVEE static const u16 sEeveeFormSpeciesIdTable[] = { SPECIES_EEVEE, +#if P_GIGANTAMAX_FORMS SPECIES_EEVEE_GIGANTAMAX, +#endif + SPECIES_EEVEE_PARTNER, FORM_SPECIES_END, }; #endif //P_FAMILY_EEVEE @@ -403,7 +523,9 @@ static const u16 sEeveeFormSpeciesIdTable[] = { #if P_FAMILY_AERODACTYL static const u16 sAerodactylFormSpeciesIdTable[] = { SPECIES_AERODACTYL, +#if P_MEGA_EVOLUTIONS SPECIES_AERODACTYL_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_AERODACTYL @@ -411,7 +533,9 @@ static const u16 sAerodactylFormSpeciesIdTable[] = { #if P_FAMILY_SNORLAX static const u16 sSnorlaxFormSpeciesIdTable[] = { SPECIES_SNORLAX, +#if P_GIGANTAMAX_FORMS SPECIES_SNORLAX_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SNORLAX @@ -419,7 +543,9 @@ static const u16 sSnorlaxFormSpeciesIdTable[] = { #if P_FAMILY_ARTICUNO static const u16 sArticunoFormSpeciesIdTable[] = { SPECIES_ARTICUNO, +#if P_GALARIAN_FORMS SPECIES_ARTICUNO_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ARTICUNO @@ -427,7 +553,9 @@ static const u16 sArticunoFormSpeciesIdTable[] = { #if P_FAMILY_ZAPDOS static const u16 sZapdosFormSpeciesIdTable[] = { SPECIES_ZAPDOS, +#if P_GALARIAN_FORMS SPECIES_ZAPDOS_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ZAPDOS @@ -435,7 +563,9 @@ static const u16 sZapdosFormSpeciesIdTable[] = { #if P_FAMILY_MOLTRES static const u16 sMoltresFormSpeciesIdTable[] = { SPECIES_MOLTRES, +#if P_GALARIAN_FORMS SPECIES_MOLTRES_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MOLTRES @@ -443,8 +573,10 @@ static const u16 sMoltresFormSpeciesIdTable[] = { #if P_FAMILY_MEWTWO static const u16 sMewtwoFormSpeciesIdTable[] = { SPECIES_MEWTWO, +#if P_MEGA_EVOLUTIONS SPECIES_MEWTWO_MEGA_X, SPECIES_MEWTWO_MEGA_Y, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MEWTWO @@ -452,7 +584,9 @@ static const u16 sMewtwoFormSpeciesIdTable[] = { #if P_FAMILY_CYNDAQUIL static const u16 sTyphlosionFormSpeciesIdTable[] = { SPECIES_TYPHLOSION, +#if P_HISUIAN_FORMS SPECIES_TYPHLOSION_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CYNDAQUIL @@ -460,7 +594,9 @@ static const u16 sTyphlosionFormSpeciesIdTable[] = { #if P_FAMILY_MAREEP static const u16 sAmpharosFormSpeciesIdTable[] = { SPECIES_AMPHAROS, +#if P_MEGA_EVOLUTIONS SPECIES_AMPHAROS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MAREEP @@ -468,7 +604,9 @@ static const u16 sAmpharosFormSpeciesIdTable[] = { #if P_FAMILY_WOOPER static const u16 sWooperFormSpeciesIdTable[] = { SPECIES_WOOPER, +#if P_PALDEAN_FORMS SPECIES_WOOPER_PALDEAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_WOOPER @@ -518,7 +656,9 @@ static const u16 sDudunsparceFormSpeciesIdTable[] = { #if P_FAMILY_QWILFISH static const u16 sQwilfishFormSpeciesIdTable[] = { SPECIES_QWILFISH, +#if P_HISUIAN_FORMS SPECIES_QWILFISH_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_QWILFISH @@ -526,7 +666,9 @@ static const u16 sQwilfishFormSpeciesIdTable[] = { #if P_FAMILY_HERACROSS static const u16 sHeracrossFormSpeciesIdTable[] = { SPECIES_HERACROSS, +#if P_MEGA_EVOLUTIONS SPECIES_HERACROSS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_HERACROSS @@ -534,7 +676,9 @@ static const u16 sHeracrossFormSpeciesIdTable[] = { #if P_FAMILY_SNEASEL static const u16 sSneaselFormSpeciesIdTable[] = { SPECIES_SNEASEL, +#if P_HISUIAN_FORMS SPECIES_SNEASEL_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SNEASEL @@ -550,7 +694,9 @@ static const u16 sUrsalunaFormSpeciesIdTable[] = { #if P_FAMILY_CORSOLA static const u16 sCorsolaFormSpeciesIdTable[] = { SPECIES_CORSOLA, +#if P_GALARIAN_FORMS SPECIES_CORSOLA_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CORSOLA @@ -558,7 +704,9 @@ static const u16 sCorsolaFormSpeciesIdTable[] = { #if P_FAMILY_HOUNDOUR static const u16 sHoundoomFormSpeciesIdTable[] = { SPECIES_HOUNDOOM, +#if P_MEGA_EVOLUTIONS SPECIES_HOUNDOOM_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_HOUNDOUR @@ -566,7 +714,9 @@ static const u16 sHoundoomFormSpeciesIdTable[] = { #if P_FAMILY_LARVITAR static const u16 sTyranitarFormSpeciesIdTable[] = { SPECIES_TYRANITAR, +#if P_MEGA_EVOLUTIONS SPECIES_TYRANITAR_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_LARVITAR @@ -574,7 +724,9 @@ static const u16 sTyranitarFormSpeciesIdTable[] = { #if P_FAMILY_TREECKO static const u16 sSceptileFormSpeciesIdTable[] = { SPECIES_SCEPTILE, +#if P_MEGA_EVOLUTIONS SPECIES_SCEPTILE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_TREECKO @@ -582,7 +734,9 @@ static const u16 sSceptileFormSpeciesIdTable[] = { #if P_FAMILY_TORCHIC static const u16 sBlazikenFormSpeciesIdTable[] = { SPECIES_BLAZIKEN, +#if P_MEGA_EVOLUTIONS SPECIES_BLAZIKEN_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_TORCHIC @@ -590,7 +744,9 @@ static const u16 sBlazikenFormSpeciesIdTable[] = { #if P_FAMILY_MUDKIP static const u16 sSwampertFormSpeciesIdTable[] = { SPECIES_SWAMPERT, +#if P_MEGA_EVOLUTIONS SPECIES_SWAMPERT_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MUDKIP @@ -598,13 +754,17 @@ static const u16 sSwampertFormSpeciesIdTable[] = { #if P_FAMILY_ZIGZAGOON static const u16 sZigzagoonFormSpeciesIdTable[] = { SPECIES_ZIGZAGOON, +#if P_GALARIAN_FORMS SPECIES_ZIGZAGOON_GALARIAN, +#endif FORM_SPECIES_END, }; static const u16 sLinooneFormSpeciesIdTable[] = { SPECIES_LINOONE, +#if P_GALARIAN_FORMS SPECIES_LINOONE_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ZIGZAGOON @@ -612,14 +772,18 @@ static const u16 sLinooneFormSpeciesIdTable[] = { #if P_FAMILY_RALTS static const u16 sGardevoirFormSpeciesIdTable[] = { SPECIES_GARDEVOIR, +#if P_MEGA_EVOLUTIONS SPECIES_GARDEVOIR_MEGA, +#endif FORM_SPECIES_END, }; #if P_GEN_4_CROSS_EVOS static const u16 sGalladeFormSpeciesIdTable[] = { SPECIES_GALLADE, +#if P_MEGA_EVOLUTIONS SPECIES_GALLADE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_GEN_4_CROSS_EVOS @@ -628,7 +792,9 @@ static const u16 sGalladeFormSpeciesIdTable[] = { #if P_FAMILY_SABLEYE static const u16 sSableyeFormSpeciesIdTable[] = { SPECIES_SABLEYE, +#if P_MEGA_EVOLUTIONS SPECIES_SABLEYE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SABLEYE @@ -636,7 +802,9 @@ static const u16 sSableyeFormSpeciesIdTable[] = { #if P_FAMILY_MAWILE static const u16 sMawileFormSpeciesIdTable[] = { SPECIES_MAWILE, +#if P_MEGA_EVOLUTIONS SPECIES_MAWILE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MAWILE @@ -644,7 +812,9 @@ static const u16 sMawileFormSpeciesIdTable[] = { #if P_FAMILY_ARON static const u16 sAggronFormSpeciesIdTable[] = { SPECIES_AGGRON, +#if P_MEGA_EVOLUTIONS SPECIES_AGGRON_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ARON @@ -652,7 +822,9 @@ static const u16 sAggronFormSpeciesIdTable[] = { #if P_FAMILY_MEDITITE static const u16 sMedichamFormSpeciesIdTable[] = { SPECIES_MEDICHAM, +#if P_MEGA_EVOLUTIONS SPECIES_MEDICHAM_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MEDITITE @@ -660,7 +832,9 @@ static const u16 sMedichamFormSpeciesIdTable[] = { #if P_FAMILY_ELECTRIKE static const u16 sManectricFormSpeciesIdTable[] = { SPECIES_MANECTRIC, +#if P_MEGA_EVOLUTIONS SPECIES_MANECTRIC_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ELECTRIKE @@ -668,7 +842,9 @@ static const u16 sManectricFormSpeciesIdTable[] = { #if P_FAMILY_CARVANHA static const u16 sSharpedoFormSpeciesIdTable[] = { SPECIES_SHARPEDO, +#if P_MEGA_EVOLUTIONS SPECIES_SHARPEDO_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CARVANHA @@ -676,7 +852,9 @@ static const u16 sSharpedoFormSpeciesIdTable[] = { #if P_FAMILY_NUMEL static const u16 sCameruptFormSpeciesIdTable[] = { SPECIES_CAMERUPT, +#if P_MEGA_EVOLUTIONS SPECIES_CAMERUPT_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_NUMEL @@ -684,7 +862,9 @@ static const u16 sCameruptFormSpeciesIdTable[] = { #if P_FAMILY_SWABLU static const u16 sAltariaFormSpeciesIdTable[] = { SPECIES_ALTARIA, +#if P_MEGA_EVOLUTIONS SPECIES_ALTARIA_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SWABLU @@ -702,7 +882,9 @@ static const u16 sCastformFormSpeciesIdTable[] = { #if P_FAMILY_SHUPPET static const u16 sBanetteFormSpeciesIdTable[] = { SPECIES_BANETTE, +#if P_MEGA_EVOLUTIONS SPECIES_BANETTE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SHUPPET @@ -710,7 +892,9 @@ static const u16 sBanetteFormSpeciesIdTable[] = { #if P_FAMILY_ABSOL static const u16 sAbsolFormSpeciesIdTable[] = { SPECIES_ABSOL, +#if P_MEGA_EVOLUTIONS SPECIES_ABSOL_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ABSOL @@ -718,7 +902,9 @@ static const u16 sAbsolFormSpeciesIdTable[] = { #if P_FAMILY_SNORUNT static const u16 sGlalieFormSpeciesIdTable[] = { SPECIES_GLALIE, +#if P_MEGA_EVOLUTIONS SPECIES_GLALIE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SNORUNT @@ -726,7 +912,9 @@ static const u16 sGlalieFormSpeciesIdTable[] = { #if P_FAMILY_BAGON static const u16 sSalamenceFormSpeciesIdTable[] = { SPECIES_SALAMENCE, +#if P_MEGA_EVOLUTIONS SPECIES_SALAMENCE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BAGON @@ -734,7 +922,9 @@ static const u16 sSalamenceFormSpeciesIdTable[] = { #if P_FAMILY_BELDUM static const u16 sMetagrossFormSpeciesIdTable[] = { SPECIES_METAGROSS, +#if P_MEGA_EVOLUTIONS SPECIES_METAGROSS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BELDUM @@ -742,7 +932,9 @@ static const u16 sMetagrossFormSpeciesIdTable[] = { #if P_FAMILY_LATIAS static const u16 sLatiasFormSpeciesIdTable[] = { SPECIES_LATIAS, +#if P_MEGA_EVOLUTIONS SPECIES_LATIAS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_LATIAS @@ -750,7 +942,9 @@ static const u16 sLatiasFormSpeciesIdTable[] = { #if P_FAMILY_LATIOS static const u16 sLatiosFormSpeciesIdTable[] = { SPECIES_LATIOS, +#if P_MEGA_EVOLUTIONS SPECIES_LATIOS_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_LATIOS @@ -758,7 +952,9 @@ static const u16 sLatiosFormSpeciesIdTable[] = { #if P_FAMILY_KYOGRE static const u16 sKyogreFormSpeciesIdTable[] = { SPECIES_KYOGRE, +#if P_PRIMAL_REVERSIONS SPECIES_KYOGRE_PRIMAL, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_KYOGRE @@ -766,7 +962,9 @@ static const u16 sKyogreFormSpeciesIdTable[] = { #if P_FAMILY_GROUDON static const u16 sGroudonFormSpeciesIdTable[] = { SPECIES_GROUDON, +#if P_PRIMAL_REVERSIONS SPECIES_GROUDON_PRIMAL, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GROUDON @@ -774,7 +972,9 @@ static const u16 sGroudonFormSpeciesIdTable[] = { #if P_FAMILY_RAYQUAZA static const u16 sRayquazaFormSpeciesIdTable[] = { SPECIES_RAYQUAZA, +#if P_MEGA_EVOLUTIONS SPECIES_RAYQUAZA_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_RAYQUAZA @@ -803,6 +1003,13 @@ static const u16 sWormadamFormSpeciesIdTable[] = { SPECIES_WORMADAM_TRASH_CLOAK, FORM_SPECIES_END, }; + +static const u16 sMothimFormSpeciesIdTable[] = { + SPECIES_MOTHIM_PLANT_CLOAK, + SPECIES_MOTHIM_SANDY_CLOAK, + SPECIES_MOTHIM_TRASH_CLOAK, + FORM_SPECIES_END, +}; #endif //P_FAMILY_BURMY #if P_FAMILY_CHERUBI @@ -830,7 +1037,9 @@ static const u16 sGastrodonFormSpeciesIdTable[] = { #if P_FAMILY_BUNEARY static const u16 sLopunnyFormSpeciesIdTable[] = { SPECIES_LOPUNNY, +#if P_MEGA_EVOLUTIONS SPECIES_LOPUNNY_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BUNEARY @@ -838,7 +1047,9 @@ static const u16 sLopunnyFormSpeciesIdTable[] = { #if P_FAMILY_GIBLE static const u16 sGarchompFormSpeciesIdTable[] = { SPECIES_GARCHOMP, +#if P_MEGA_EVOLUTIONS SPECIES_GARCHOMP_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GIBLE @@ -846,7 +1057,9 @@ static const u16 sGarchompFormSpeciesIdTable[] = { #if P_FAMILY_RIOLU static const u16 sLucarioFormSpeciesIdTable[] = { SPECIES_LUCARIO, +#if P_MEGA_EVOLUTIONS SPECIES_LUCARIO_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_RIOLU @@ -854,7 +1067,9 @@ static const u16 sLucarioFormSpeciesIdTable[] = { #if P_FAMILY_SNOVER static const u16 sAbomasnowFormSpeciesIdTable[] = { SPECIES_ABOMASNOW, +#if P_MEGA_EVOLUTIONS SPECIES_ABOMASNOW_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SNOVER @@ -930,7 +1145,9 @@ static const u16 sArceusFormSpeciesIdTable[] = { #if P_FAMILY_OSHAWOTT static const u16 sSamurottFormSpeciesIdTable[] = { SPECIES_SAMUROTT, +#if P_HISUIAN_FORMS SPECIES_SAMUROTT_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_OSHAWOTT @@ -938,7 +1155,9 @@ static const u16 sSamurottFormSpeciesIdTable[] = { #if P_FAMILY_AUDINO static const u16 sAudinoFormSpeciesIdTable[] = { SPECIES_AUDINO, +#if P_MEGA_EVOLUTIONS SPECIES_AUDINO_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_AUDINO @@ -946,7 +1165,9 @@ static const u16 sAudinoFormSpeciesIdTable[] = { #if P_FAMILY_PETILIL static const u16 sLilligantFormSpeciesIdTable[] = { SPECIES_LILLIGANT, +#if P_HISUIAN_FORMS SPECIES_LILLIGANT_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_PETILIL @@ -969,15 +1190,19 @@ static const u16 sBasculegionFormSpeciesIdTable[] = { #if P_FAMILY_DARUMAKA static const u16 sDarumakaFormSpeciesIdTable[] = { SPECIES_DARUMAKA, +#if P_GALARIAN_FORMS SPECIES_DARUMAKA_GALARIAN, +#endif FORM_SPECIES_END, }; static const u16 sDarmanitanFormSpeciesIdTable[] = { SPECIES_DARMANITAN_STANDARD_MODE, SPECIES_DARMANITAN_ZEN_MODE, +#if P_GALARIAN_FORMS SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE, SPECIES_DARMANITAN_GALARIAN_ZEN_MODE, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_DARUMAKA @@ -985,7 +1210,9 @@ static const u16 sDarmanitanFormSpeciesIdTable[] = { #if P_FAMILY_YAMASK static const u16 sYamaskFormSpeciesIdTable[] = { SPECIES_YAMASK, +#if P_GALARIAN_FORMS SPECIES_YAMASK_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_YAMASK @@ -993,7 +1220,9 @@ static const u16 sYamaskFormSpeciesIdTable[] = { #if P_FAMILY_TRUBBISH static const u16 sGarbodorFormSpeciesIdTable[] = { SPECIES_GARBODOR, +#if P_GIGANTAMAX_FORMS SPECIES_GARBODOR_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_TRUBBISH @@ -1001,13 +1230,17 @@ static const u16 sGarbodorFormSpeciesIdTable[] = { #if P_FAMILY_ZORUA static const u16 sZoruaFormSpeciesIdTable[] = { SPECIES_ZORUA, +#if P_HISUIAN_FORMS SPECIES_ZORUA_HISUIAN, +#endif FORM_SPECIES_END, }; static const u16 sZoroarkFormSpeciesIdTable[] = { SPECIES_ZOROARK, +#if P_HISUIAN_FORMS SPECIES_ZOROARK_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ZORUA @@ -1033,7 +1266,9 @@ static const u16 sSawsbuckFormSpeciesIdTable[] = { #if P_FAMILY_STUNFISK static const u16 sStunfiskFormSpeciesIdTable[] = { SPECIES_STUNFISK, +#if P_GALARIAN_FORMS SPECIES_STUNFISK_GALARIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_STUNFISK @@ -1041,7 +1276,9 @@ static const u16 sStunfiskFormSpeciesIdTable[] = { #if P_FAMILY_RUFFLET static const u16 sBraviaryFormSpeciesIdTable[] = { SPECIES_BRAVIARY, +#if P_HISUIAN_FORMS SPECIES_BRAVIARY_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_RUFFLET @@ -1116,6 +1353,54 @@ static const u16 sGreninjaFormSpeciesIdTable[] = { #endif //P_FAMILY_FROAKIE #if P_FAMILY_SCATTERBUG +static const u16 sScatterbugFormSpeciesIdTable[] = { + SPECIES_SCATTERBUG_ICY_SNOW, + SPECIES_SCATTERBUG_POLAR, + SPECIES_SCATTERBUG_TUNDRA, + SPECIES_SCATTERBUG_CONTINENTAL, + SPECIES_SCATTERBUG_GARDEN, + SPECIES_SCATTERBUG_ELEGANT, + SPECIES_SCATTERBUG_MEADOW, + SPECIES_SCATTERBUG_MODERN, + SPECIES_SCATTERBUG_MARINE, + SPECIES_SCATTERBUG_ARCHIPELAGO, + SPECIES_SCATTERBUG_HIGH_PLAINS, + SPECIES_SCATTERBUG_SANDSTORM, + SPECIES_SCATTERBUG_RIVER, + SPECIES_SCATTERBUG_MONSOON, + SPECIES_SCATTERBUG_SAVANNA, + SPECIES_SCATTERBUG_SUN, + SPECIES_SCATTERBUG_OCEAN, + SPECIES_SCATTERBUG_JUNGLE, + SPECIES_SCATTERBUG_FANCY, + SPECIES_SCATTERBUG_POKE_BALL, + FORM_SPECIES_END, +}; + +static const u16 sSpewpaFormSpeciesIdTable[] = { + SPECIES_SPEWPA_ICY_SNOW, + SPECIES_SPEWPA_POLAR, + SPECIES_SPEWPA_TUNDRA, + SPECIES_SPEWPA_CONTINENTAL, + SPECIES_SPEWPA_GARDEN, + SPECIES_SPEWPA_ELEGANT, + SPECIES_SPEWPA_MEADOW, + SPECIES_SPEWPA_MODERN, + SPECIES_SPEWPA_MARINE, + SPECIES_SPEWPA_ARCHIPELAGO, + SPECIES_SPEWPA_HIGH_PLAINS, + SPECIES_SPEWPA_SANDSTORM, + SPECIES_SPEWPA_RIVER, + SPECIES_SPEWPA_MONSOON, + SPECIES_SPEWPA_SAVANNA, + SPECIES_SPEWPA_SUN, + SPECIES_SPEWPA_OCEAN, + SPECIES_SPEWPA_JUNGLE, + SPECIES_SPEWPA_FANCY, + SPECIES_SPEWPA_POKE_BALL, + FORM_SPECIES_END, +}; + static const u16 sVivillonFormSpeciesIdTable[] = { SPECIES_VIVILLON_ICY_SNOW, SPECIES_VIVILLON_POLAR, @@ -1206,13 +1491,17 @@ static const u16 sAegislashFormSpeciesIdTable[] = { #if P_FAMILY_GOOMY static const u16 sSliggooFormSpeciesIdTable[] = { SPECIES_SLIGGOO, +#if P_HISUIAN_FORMS SPECIES_SLIGGOO_HISUIAN, +#endif FORM_SPECIES_END, }; static const u16 sGoodraFormSpeciesIdTable[] = { SPECIES_GOODRA, +#if P_HISUIAN_FORMS SPECIES_GOODRA_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GOOMY @@ -1238,7 +1527,9 @@ static const u16 sGourgeistFormSpeciesIdTable[] = { #if P_FAMILY_BERGMITE static const u16 sAvaluggFormSpeciesIdTable[] = { SPECIES_AVALUGG, +#if P_HISUIAN_FORMS SPECIES_AVALUGG_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BERGMITE @@ -1265,7 +1556,9 @@ static const u16 sZygardeFormSpeciesIdTable[] = { #if P_FAMILY_DIANCIE static const u16 sDiancieFormSpeciesIdTable[] = { SPECIES_DIANCIE, +#if P_MEGA_EVOLUTIONS SPECIES_DIANCIE_MEGA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_DIANCIE @@ -1281,11 +1574,29 @@ static const u16 sHoopaFormSpeciesIdTable[] = { #if P_FAMILY_ROWLET static const u16 sDecidueyeFormSpeciesIdTable[] = { SPECIES_DECIDUEYE, +#if P_HISUIAN_FORMS SPECIES_DECIDUEYE_HISUIAN, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ROWLET +#if P_FAMILY_YUNGOOS +static const u16 sGumshoosFormSpeciesIdTable[] = { + SPECIES_GUMSHOOS, + SPECIES_GUMSHOOS_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const u16 sVikavoltFormSpeciesIdTable[] = { + SPECIES_VIKAVOLT, + SPECIES_VIKAVOLT_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_GRUBBIN + #if P_FAMILY_ORICORIO static const u16 sOricorioFormSpeciesIdTable[] = { SPECIES_ORICORIO_BAILE, @@ -1296,6 +1607,14 @@ static const u16 sOricorioFormSpeciesIdTable[] = { }; #endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY +static const u16 sRibombeeFormSpeciesIdTable[] = { + SPECIES_RIBOMBEE, + SPECIES_RIBOMBEE_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_CUTIEFLY + #if P_FAMILY_ROCKRUFF static const u16 sRockruffFormSpeciesIdTable[] = { SPECIES_ROCKRUFF, @@ -1319,6 +1638,30 @@ static const u16 sWishiwashiFormSpeciesIdTable[] = { }; #endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_DEWPIDER +static const u16 sAraquanidFormSpeciesIdTable[] = { + SPECIES_ARAQUANID, + SPECIES_ARAQUANID_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const u16 sLurantisFormSpeciesIdTable[] = { + SPECIES_LURANTIS, + SPECIES_LURANTIS_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_SALANDIT +static const u16 sSalanditFormSpeciesIdTable[] = { + SPECIES_SALAZZLE, + SPECIES_SALAZZLE_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_FOMANTIS + #if P_FAMILY_TYPE_NULL static const u16 sSilvallyFormSpeciesIdTable[] = { SPECIES_SILVALLY_NORMAL, @@ -1363,20 +1706,40 @@ static const u16 sMiniorFormSpeciesIdTable[] = { }; #endif //P_FAMILY_MINIOR +#if P_FAMILY_TOGEDEMARU +static const u16 sTogedemaruFormSpeciesIdTable[] = { + SPECIES_TOGEDEMARU, + SPECIES_TOGEDEMARU_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TOGEDEMARU + #if P_FAMILY_MIMIKYU static const u16 sMimikyuFormSpeciesIdTable[] = { SPECIES_MIMIKYU_DISGUISED, SPECIES_MIMIKYU_BUSTED, + SPECIES_MIMIKYU_TOTEM_DISGUISED, + SPECIES_MIMIKYU_TOTEM_BUSTED, FORM_SPECIES_END, }; #endif //P_FAMILY_MIMIKYU +#if P_FAMILY_JANGMO_O +static const u16 sKommoOFormSpeciesIdTable[] = { + SPECIES_KOMMO_O, + SPECIES_KOMMO_O_TOTEM, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_JANGMO_O + #if P_FAMILY_NECROZMA static const u16 sNecrozmaFormSpeciesIdTable[] = { SPECIES_NECROZMA, SPECIES_NECROZMA_DUSK_MANE, SPECIES_NECROZMA_DAWN_WINGS, +#if P_ULTRA_BURST_FORMS SPECIES_NECROZMA_ULTRA, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_NECROZMA @@ -1392,7 +1755,9 @@ static const u16 sMagearnaFormSpeciesIdTable[] = { #if P_FAMILY_MELTAN static const u16 sMelmetalFormSpeciesIdTable[] = { SPECIES_MELMETAL, +#if P_GIGANTAMAX_FORMS SPECIES_MELMETAL_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MELTAN @@ -1400,7 +1765,9 @@ static const u16 sMelmetalFormSpeciesIdTable[] = { #if P_FAMILY_GROOKEY static const u16 sRillaboomFormSpeciesIdTable[] = { SPECIES_RILLABOOM, +#if P_GIGANTAMAX_FORMS SPECIES_RILLABOOM_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_GROOKEY @@ -1408,7 +1775,9 @@ static const u16 sRillaboomFormSpeciesIdTable[] = { #if P_FAMILY_SCORBUNNY static const u16 sCinderaceFormSpeciesIdTable[] = { SPECIES_CINDERACE, +#if P_GIGANTAMAX_FORMS SPECIES_CINDERACE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SCORBUNNY @@ -1416,7 +1785,9 @@ static const u16 sCinderaceFormSpeciesIdTable[] = { #if P_FAMILY_SOBBLE static const u16 sInteleonFormSpeciesIdTable[] = { SPECIES_INTELEON, +#if P_GIGANTAMAX_FORMS SPECIES_INTELEON_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SOBBLE @@ -1424,7 +1795,9 @@ static const u16 sInteleonFormSpeciesIdTable[] = { #if P_FAMILY_ROOKIDEE static const u16 sCorviknightFormSpeciesIdTable[] = { SPECIES_CORVIKNIGHT, +#if P_GIGANTAMAX_FORMS SPECIES_CORVIKNIGHT_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ROOKIDEE @@ -1432,7 +1805,9 @@ static const u16 sCorviknightFormSpeciesIdTable[] = { #if P_FAMILY_BLIPBUG static const u16 sOrbeetleFormSpeciesIdTable[] = { SPECIES_ORBEETLE, +#if P_GIGANTAMAX_FORMS SPECIES_ORBEETLE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_BLIPBUG @@ -1440,7 +1815,9 @@ static const u16 sOrbeetleFormSpeciesIdTable[] = { #if P_FAMILY_CHEWTLE static const u16 sDrednawFormSpeciesIdTable[] = { SPECIES_DREDNAW, +#if P_GIGANTAMAX_FORMS SPECIES_DREDNAW_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CHEWTLE @@ -1448,7 +1825,9 @@ static const u16 sDrednawFormSpeciesIdTable[] = { #if P_FAMILY_ROLYCOLY static const u16 sCoalossalFormSpeciesIdTable[] = { SPECIES_COALOSSAL, +#if P_GIGANTAMAX_FORMS SPECIES_COALOSSAL_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_ROLYCOLY @@ -1456,13 +1835,17 @@ static const u16 sCoalossalFormSpeciesIdTable[] = { #if P_FAMILY_APPLIN static const u16 sFlappleFormSpeciesIdTable[] = { SPECIES_FLAPPLE, +#if P_GIGANTAMAX_FORMS SPECIES_FLAPPLE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; static const u16 sAppletunFormSpeciesIdTable[] = { SPECIES_APPLETUN, +#if P_GIGANTAMAX_FORMS SPECIES_APPLETUN_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_APPLIN @@ -1470,7 +1853,9 @@ static const u16 sAppletunFormSpeciesIdTable[] = { #if P_FAMILY_SILICOBRA static const u16 sSandacondaFormSpeciesIdTable[] = { SPECIES_SANDACONDA, +#if P_GIGANTAMAX_FORMS SPECIES_SANDACONDA_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SILICOBRA @@ -1488,8 +1873,12 @@ static const u16 sCramorantFormSpeciesIdTable[] = { static const u16 sToxtricityFormSpeciesIdTable[] = { SPECIES_TOXTRICITY_AMPED, SPECIES_TOXTRICITY_LOW_KEY, +#if P_GIGANTAMAX_FORMS SPECIES_TOXTRICITY_AMPED_GIGANTAMAX, +#endif +#if P_GIGANTAMAX_FORMS SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_TOXEL @@ -1497,7 +1886,9 @@ static const u16 sToxtricityFormSpeciesIdTable[] = { #if P_FAMILY_SIZZLIPEDE static const u16 sCentiskorchFormSpeciesIdTable[] = { SPECIES_CENTISKORCH, +#if P_GIGANTAMAX_FORMS SPECIES_CENTISKORCH_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_SIZZLIPEDE @@ -1519,7 +1910,9 @@ static const u16 sPolteageistFormSpeciesIdTable[] = { #if P_FAMILY_HATENNA static const u16 sHattereneFormSpeciesIdTable[] = { SPECIES_HATTERENE, +#if P_GIGANTAMAX_FORMS SPECIES_HATTERENE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_HATENNA @@ -1527,7 +1920,9 @@ static const u16 sHattereneFormSpeciesIdTable[] = { #if P_FAMILY_IMPIDIMP static const u16 sGrimmsnarlFormSpeciesIdTable[] = { SPECIES_GRIMMSNARL, +#if P_GIGANTAMAX_FORMS SPECIES_GRIMMSNARL_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_IMPIDIMP @@ -1597,7 +1992,9 @@ static const u16 sAlcremieFormSpeciesIdTable[] = { SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL, SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL, SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, +#if P_GIGANTAMAX_FORMS SPECIES_ALCREMIE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_MILCERY @@ -1629,7 +2026,9 @@ static const u16 sMorpekoFormSpeciesIdTable[] = { #if P_FAMILY_CUFANT static const u16 sCopperajahFormSpeciesIdTable[] = { SPECIES_COPPERAJAH, +#if P_GIGANTAMAX_FORMS SPECIES_COPPERAJAH_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_CUFANT @@ -1637,7 +2036,9 @@ static const u16 sCopperajahFormSpeciesIdTable[] = { #if P_FAMILY_DURALUDON static const u16 sDuraludonFormSpeciesIdTable[] = { SPECIES_DURALUDON, +#if P_GIGANTAMAX_FORMS SPECIES_DURALUDON_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_DURALUDON @@ -1670,8 +2071,10 @@ static const u16 sEternatusFormSpeciesIdTable[] = { static const u16 sUrshifuFormSpeciesIdTable[] = { SPECIES_URSHIFU_SINGLE_STRIKE_STYLE, SPECIES_URSHIFU_RAPID_STRIKE_STYLE, +#if P_GIGANTAMAX_FORMS SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX, SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, +#endif FORM_SPECIES_END, }; #endif //P_FAMILY_KUBFU @@ -1761,3 +2164,14 @@ static const u16 sOgerponFormSpeciesIdTable[] = { FORM_SPECIES_END, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosFormSpeciesIdTable[] = { + SPECIES_TERAPAGOS_NORMAL, + SPECIES_TERAPAGOS_TERASTAL, +#if P_TERA_FORMS + SPECIES_TERAPAGOS_STELLAR, +#endif + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TERAPAGOS diff --git a/src/data/pokemon/level_up_learnsets/gen_1.h b/src/data/pokemon/level_up_learnsets/gen_1.h new file mode 100644 index 000000000..240a4b069 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_1.h @@ -0,0 +1,19852 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(27, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(34, MOVE_GROWTH), + LEVEL_UP_MOVE(41, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(30, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(38, MOVE_GROWTH), + LEVEL_UP_MOVE(46, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(30, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(43, MOVE_GROWTH), + LEVEL_UP_MOVE(55, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(22, MOVE_RAGE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(24, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_FIRE_SPIN), + 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_LEER), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(24, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_WITHDRAW), + LEVEL_UP_MOVE(35, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(31, MOVE_WITHDRAW), + LEVEL_UP_MOVE(39, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(31, MOVE_WITHDRAW), + LEVEL_UP_MOVE(42, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + 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_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(23, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_SUPER_FANG), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(22, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(29, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POISON_STING), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_GLARE), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_POISON_STING), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_GLARE), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(47, MOVE_ACID), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + 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_THUNDERBOLT), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_POISON_STING), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(38, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_POISON_STING), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(47, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(38, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_POISON_STING), + LEVEL_UP_MOVE(27, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(36, MOVE_BITE), + LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_POISON_STING), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(46, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_MINIMIZE), + LEVEL_UP_MOVE(31, MOVE_METRONOME), + LEVEL_UP_MOVE(39, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(48, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_DISABLE), + LEVEL_UP_MOVE(19, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(36, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(32, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(19, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(33, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(19, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(28, MOVE_ACID), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(52, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(19, MOVE_SLEEP_POWDER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_SPORE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_GROWTH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_GROWTH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(19, MOVE_CONFUSION), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(27, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(35, MOVE_PSYBEAM), + LEVEL_UP_MOVE(38, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(27, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(38, MOVE_PSYBEAM), + LEVEL_UP_MOVE(43, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(15, MOVE_GROWL), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE(15, MOVE_GROWL), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_PAY_DAY), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(44, MOVE_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_PAY_DAY), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(51, MOVE_SLASH), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(28, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(31, MOVE_DISABLE), + LEVEL_UP_MOVE(36, MOVE_CONFUSION), + LEVEL_UP_MOVE(43, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(28, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(31, MOVE_DISABLE), + LEVEL_UP_MOVE(39, MOVE_CONFUSION), + LEVEL_UP_MOVE(48, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(39, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(37, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE(18, MOVE_EMBER), + LEVEL_UP_MOVE(23, MOVE_LEER), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(26, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(35, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(51, MOVE_SWAGGER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(27, MOVE_PSYBEAM), + LEVEL_UP_MOVE(31, MOVE_RECOVER), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_REFLECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(27, MOVE_PSYBEAM), + LEVEL_UP_MOVE(31, MOVE_RECOVER), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_REFLECT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(20, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_LEER), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(39, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(46, MOVE_SUBMISSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_LEER), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(52, MOVE_SUBMISSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_LEER), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(52, MOVE_SUBMISSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(21, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_ACID), + LEVEL_UP_MOVE(33, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(29, MOVE_ACID), + LEVEL_UP_MOVE(38, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WRAP), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_WATER_GUN), + LEVEL_UP_MOVE(27, MOVE_CONSTRICT), + LEVEL_UP_MOVE(33, MOVE_BARRIER), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WRAP), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_WATER_GUN), + LEVEL_UP_MOVE(27, MOVE_CONSTRICT), + LEVEL_UP_MOVE(35, MOVE_BARRIER), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(11, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HARDEN), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(32, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_GROWL), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(30, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(32, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_GROWL), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(47, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_GROWL), + LEVEL_UP_MOVE(33, MOVE_WATER_GUN), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_GROWL), + LEVEL_UP_MOVE(33, MOVE_WATER_GUN), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(44, MOVE_AMNESIA), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(21, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(29, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(35, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(41, MOVE_SWIFT), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(21, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(29, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(38, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(46, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(20, MOVE_GROWL), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(36, MOVE_RAGE), + LEVEL_UP_MOVE(40, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_GROWL), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(39, MOVE_RAGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_GROWL), + LEVEL_UP_MOVE(35, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + 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_AURORA_BEAM), + LEVEL_UP_MOVE(30, MOVE_GROWL), + LEVEL_UP_MOVE(35, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(44, MOVE_REST), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(30, MOVE_POISON_GAS), + LEVEL_UP_MOVE(33, MOVE_MINIMIZE), + LEVEL_UP_MOVE(37, MOVE_SLUDGE), + LEVEL_UP_MOVE(42, MOVE_HARDEN), + LEVEL_UP_MOVE(48, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_ACID_ARMOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE(30, MOVE_POISON_GAS), + LEVEL_UP_MOVE(33, MOVE_MINIMIZE), + LEVEL_UP_MOVE(37, MOVE_SLUDGE), + LEVEL_UP_MOVE(45, MOVE_HARDEN), + LEVEL_UP_MOVE(53, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_ACID_ARMOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(23, MOVE_CLAMP), + LEVEL_UP_MOVE(30, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(39, MOVE_LEER), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(50, MOVE_SPIKE_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(38, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(38, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(43, MOVE_HARDEN), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(23, MOVE_HARDEN), + LEVEL_UP_MOVE(27, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POISON_GAS), + LEVEL_UP_MOVE(32, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_MEDITATE), + 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(12, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_POISON_GAS), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_MEDITATE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(40, MOVE_HARDEN), + 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_VISE_GRIP), + LEVEL_UP_MOVE(20, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(34, MOVE_STOMP), + LEVEL_UP_MOVE(42, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(49, MOVE_HARDEN), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_SWIFT), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(37, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_SLEEP_POWDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_LEER), + LEVEL_UP_MOVE(31, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_BONEMERANG), + LEVEL_UP_MOVE(46, MOVE_RAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_LEER), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_BONEMERANG), + LEVEL_UP_MOVE(55, MOVE_RAGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE(33, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(38, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(43, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_MEGA_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(38, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(43, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(53, MOVE_COUNTER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_TRIPLE_KICK), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_MOVE(57, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE(32, MOVE_SLUDGE), + LEVEL_UP_MOVE(37, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(40, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(45, MOVE_HAZE), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + 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_SLUDGE), + LEVEL_UP_MOVE(32, MOVE_SLUDGE), + LEVEL_UP_MOVE(39, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(43, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(49, MOVE_HAZE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(45, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(50, MOVE_LEER), + LEVEL_UP_MOVE(55, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(48, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(55, MOVE_LEER), + LEVEL_UP_MOVE(64, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_MOVE(61, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_SING), + LEVEL_UP_MOVE(30, MOVE_GROWL), + LEVEL_UP_MOVE(38, MOVE_MINIMIZE), + LEVEL_UP_MOVE(44, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(48, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(28, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE(24, MOVE_BIND), + LEVEL_UP_MOVE(27, MOVE_ABSORB), + LEVEL_UP_MOVE(29, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(32, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(36, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(39, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(48, MOVE_GROWTH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 8, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_TICKLE), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE(26, MOVE_BITE), + LEVEL_UP_MOVE(31, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(36, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(41, MOVE_LEER), + LEVEL_UP_MOVE(46, MOVE_DIZZY_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(24, MOVE_LEER), + LEVEL_UP_MOVE(30, MOVE_WATER_GUN), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(24, MOVE_LEER), + LEVEL_UP_MOVE(30, MOVE_WATER_GUN), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 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(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_WATERFALL), + LEVEL_UP_MOVE(45, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(39, MOVE_WATERFALL), + LEVEL_UP_MOVE(48, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(27, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_MINIMIZE), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(39, MOVE_MEDITATE), + LEVEL_UP_MOVE(47, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_WING_ATTACK), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(18, MOVE_LICK), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(31, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(39, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(34, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(54, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(67, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(36, MOVE_LEER), + LEVEL_UP_MOVE(39, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(43, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(48, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(52, MOVE_SMOG), + LEVEL_UP_MOVE(55, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(30, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(43, MOVE_HARDEN), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(54, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(35, MOVE_LEER), + LEVEL_UP_MOVE(44, MOVE_RAGE), + LEVEL_UP_MOVE(51, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(32, MOVE_LEER), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + 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(42, MOVE_MIST), + LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK), + 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 sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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 +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_MORNING_SUN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_MOONLIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(64, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(71, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(78, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(43, MOVE_ICE_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_BARRIER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SHARPEN), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE(23, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_TRI_ATTACK), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + 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_DEFENSE_CURL), + LEVEL_UP_MOVE(32, MOVE_LOCK_ON), + LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE(34, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(39, MOVE_LEER), + LEVEL_UP_MOVE(46, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(34, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(39, MOVE_LEER), + LEVEL_UP_MOVE(44, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(34, MOVE_ABSORB), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_LEER), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(34, MOVE_ABSORB), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_LEER), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(38, MOVE_BITE), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_RECYCLE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_ROLLOUT), + LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_HARDEN), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_MIST), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_THUNDER), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(51, MOVE_LEER), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_BARRIER), + LEVEL_UP_MOVE(66, MOVE_PSYCHIC), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(75, MOVE_MIST), + LEVEL_UP_MOVE(81, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(10, MOVE_TRANSFORM), + LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(30, MOVE_METRONOME), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(45, MOVE_SWIFT), + LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_REST), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CONFUSION), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_CONFUSION), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_METRONOME), + LEVEL_UP_MOVE(18, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_METRONOME), + LEVEL_UP_MOVE(18, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(19, MOVE_LOW_KICK), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BATON_PASS), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(31, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(31, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(47, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(59, MOVE_MIST), + LEVEL_UP_MOVE(59, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HAZE), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 6, MOVE_SPITE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(27, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_PSYBEAM), + LEVEL_UP_MOVE(54, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(43, MOVE_SPIKES), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(39, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_SPIKES), + LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(18, MOVE_SPITE), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(27, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(38, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(34, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_RAGE), + LEVEL_UP_MOVE(51, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_MINIMIZE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_ENCORE), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_BIDE), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(27, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_BEAT_UP), + LEVEL_UP_MOVE(65, MOVE_METAL_CLAW), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_FLING), + LEVEL_UP_MOVE(42, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(50, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(60, MOVE_BODY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_HAIL), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(19, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(37, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(54, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(49, MOVE_STEEL_WING), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(26, MOVE_BIDE), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_HEAL_BELL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SPARK), + LEVEL_UP_MOVE(51, MOVE_REFLECT), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_STOMP), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(61, MOVE_SWAGGER), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AEROBLAST), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_THIEF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_THIEF), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(37, MOVE_THIEF), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(43, MOVE_PURSUIT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(47, MOVE_SPIT_UP), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(31, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(46, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(54, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(51, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(39, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(50, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(53, MOVE_WHIRLWIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(36, MOVE_GROWTH), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(45, MOVE_MIND_READER), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_REST), + LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(31, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_ENDURE), + LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(46, MOVE_LOCK_ON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 7, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(13, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_DISCHARGE), + LEVEL_UP_MOVE(61, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_LOCK_ON), + LEVEL_UP_MOVE(79, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(50, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(40, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_THUNDER), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_BITE), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(53, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_INGRAIN), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(57, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_STOCKPILE), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ERUPTION), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(45, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(54, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_STOCKPILE), + LEVEL_UP_MOVE(50, MOVE_SWALLOW), + LEVEL_UP_MOVE(50, MOVE_SPIT_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_STOCKPILE), + LEVEL_UP_MOVE(60, MOVE_SWALLOW), + LEVEL_UP_MOVE(60, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(55, MOVE_SLASH), + LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_REFRESH), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(56, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(39, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_SNATCH), + LEVEL_UP_MOVE(64, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_UPROAR), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_ATTRACT), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_MEMENTO), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_CALM_MIND), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(65, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(41, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(53, MOVE_CALM_MIND), + LEVEL_UP_MOVE(57, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(52, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_POWER_GEM), + LEVEL_UP_MOVE(25, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(45, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(50, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(30, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(51, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_ATTRACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_MEMENTO), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(38, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(61, MOVE_PAYBACK), + LEVEL_UP_MOVE(67, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_MIMIC), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_COPYCAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ME_FIRST), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(58, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(38, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_STOCKPILE), + LEVEL_UP_MOVE(31, MOVE_SWALLOW), + LEVEL_UP_MOVE(31, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_WRING_OUT), + LEVEL_UP_MOVE(47, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_CHARGE), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(51, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_STOCKPILE), + LEVEL_UP_MOVE(56, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_2.h b/src/data/pokemon/level_up_learnsets/gen_2.h new file mode 100644 index 000000000..0995a4c15 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_2.h @@ -0,0 +1,20096 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 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(32, MOVE_GROWTH), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(38, MOVE_GROWTH), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(41, MOVE_GROWTH), + LEVEL_UP_MOVE(53, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN), + 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_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + 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_DRAGON_RAGE), + LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + 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(23, MOVE_RAPID_SPIN), + 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_TACKLE), + 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(25, MOVE_RAPID_SPIN), + 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_TACKLE), + 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(25, MOVE_RAPID_SPIN), + 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 +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + 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_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + 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_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(29, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(55, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + 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(32, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(40, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_GLARE), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_ACID), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ACID), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + 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_THUNDERBOLT), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(45, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(38, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_POISON_STING), + LEVEL_UP_MOVE(27, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(36, MOVE_BITE), + LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_POISON_STING), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(46, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(34, MOVE_METRONOME), + LEVEL_UP_MOVE(43, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(53, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(43, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + 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_DOUBLE_SLAP), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(46, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(32, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(25, MOVE_SPORE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(28, MOVE_SPORE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_GROWTH), + LEVEL_UP_MOVE(55, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + 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_LEECH_LIFE), + 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_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#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(25, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(46, MOVE_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(53, MOVE_SLASH), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(63, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(18, MOVE_LEER), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_SUBMISSION), + LEVEL_UP_MOVE(51, MOVE_MIND_READER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(35, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(51, MOVE_SWAGGER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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(26, MOVE_RECOVER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_REFLECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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(26, MOVE_RECOVER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_REFLECT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_FORESIGHT), + LEVEL_UP_MOVE(31, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_SUBMISSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_FORESIGHT), + LEVEL_UP_MOVE(34, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(43, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(61, MOVE_SUBMISSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_FORESIGHT), + LEVEL_UP_MOVE(34, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(43, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(61, MOVE_SUBMISSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + 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(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(54, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_CONSTRICT), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(36, MOVE_BARRIER), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + 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_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(38, MOVE_BARRIER), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HARDEN), + LEVEL_UP_MOVE(31, MOVE_ROLLOUT), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(27, MOVE_HARDEN), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(27, MOVE_HARDEN), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(26, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(26, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + 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_RAGE), + LEVEL_UP_MOVE(33, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + 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_RAGE), + LEVEL_UP_MOVE(38, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(48, 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_AURORA_BEAM), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(60, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_HARDEN), + LEVEL_UP_MOVE(37, MOVE_DISABLE), + LEVEL_UP_MOVE(45, MOVE_SLUDGE), + LEVEL_UP_MOVE(45, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(60, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_LEER), + LEVEL_UP_MOVE(41, MOVE_CLAMP), + LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(23, MOVE_HARDEN), + LEVEL_UP_MOVE(27, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(23, MOVE_HARDEN), + LEVEL_UP_MOVE(27, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(31, MOVE_POISON_GAS), + LEVEL_UP_MOVE(36, MOVE_MEDITATE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, 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(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_POISON_GAS), + LEVEL_UP_MOVE(40, MOVE_MEDITATE), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(41, MOVE_CRABHAMMER), + 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_VISE_GRIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(38, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_CRABHAMMER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_SCREECH), + LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_SWIFT), + LEVEL_UP_MOVE(39, MOVE_EXPLOSION), + LEVEL_UP_MOVE(41, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_SCREECH), + LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_SWIFT), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_EGG_BOMB), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 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_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_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(32, MOVE_RAGE), + LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_BONE_RUSH), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +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(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_HIGH_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_END +}; + +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(26, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DETECT), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_TRIPLE_KICK), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_WRAP), + LEVEL_UP_MOVE(31, MOVE_DISABLE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_MOVE(57, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + 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_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + 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_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(65, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_MOVE(61, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + 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(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(28, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(25, MOVE_BIND), + LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(34, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_GROWTH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 8, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_TICKLE), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_TAIL_WHIP), + 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 +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + 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_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 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(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 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(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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(41, MOVE_WATERFALL), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(61, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(19, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(37, MOVE_MINIMIZE), + LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(16, MOVE_MEDITATE), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(26, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(51, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(57, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(67, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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 +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_HARDEN), + LEVEL_UP_MOVE(31, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(37, MOVE_SUBMISSION), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(30, MOVE_LEER), + LEVEL_UP_MOVE(35, MOVE_TWISTER), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(43, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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 sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK), + 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 sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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 +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_MORNING_SUN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_MOONLIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(64, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(71, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(78, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(43, MOVE_ICE_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_BARRIER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + 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_DEFENSE_CURL), + LEVEL_UP_MOVE(32, MOVE_LOCK_ON), + LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(31, MOVE_LEER), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(31, MOVE_LEER), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(54, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(28, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(28, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(51, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_AGILITY), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_RECYCLE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_ROLLOUT), + LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_AMNESIA), + LEVEL_UP_MOVE(15, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(22, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(29, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_ROLLOUT), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + 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(61, MOVE_REFLECT), + LEVEL_UP_MOVE(73, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + 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(61, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(73, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(73, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + 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_WRAP), + 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_WRAP), + 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(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(61, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_BARRIER), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_MIST), + LEVEL_UP_MOVE(66, MOVE_PSYCHIC), + LEVEL_UP_MOVE(77, MOVE_AMNESIA), + LEVEL_UP_MOVE(88, MOVE_RECOVER), + LEVEL_UP_MOVE(99, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(10, MOVE_TRANSFORM), + LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(30, MOVE_METRONOME), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(45, MOVE_SWIFT), + LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_REST), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CONFUSION), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_CONFUSION), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_METRONOME), + LEVEL_UP_MOVE(18, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_METRONOME), + LEVEL_UP_MOVE(18, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(19, MOVE_LOW_KICK), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BATON_PASS), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(31, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(31, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(47, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(59, MOVE_MIST), + LEVEL_UP_MOVE(59, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HAZE), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 6, MOVE_SPITE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(27, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_PSYBEAM), + LEVEL_UP_MOVE(54, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(43, MOVE_SPIKES), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(39, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_SPIKES), + LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(18, MOVE_SPITE), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(27, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(38, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(34, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_RAGE), + LEVEL_UP_MOVE(51, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_MINIMIZE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_ENCORE), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_BIDE), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(27, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_BEAT_UP), + LEVEL_UP_MOVE(65, MOVE_METAL_CLAW), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_FLING), + LEVEL_UP_MOVE(42, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(50, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(60, MOVE_BODY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_HAIL), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(19, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(37, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(54, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(49, MOVE_STEEL_WING), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(26, MOVE_BIDE), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_HEAL_BELL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SPARK), + LEVEL_UP_MOVE(51, MOVE_REFLECT), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_STOMP), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(61, MOVE_SWAGGER), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AEROBLAST), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_THIEF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_THIEF), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(37, MOVE_THIEF), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(43, MOVE_PURSUIT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(47, MOVE_SPIT_UP), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(31, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(46, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(54, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(51, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(39, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(50, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(53, MOVE_WHIRLWIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(36, MOVE_GROWTH), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(45, MOVE_MIND_READER), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_REST), + LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(31, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_ENDURE), + LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(46, MOVE_LOCK_ON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 7, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(13, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_DISCHARGE), + LEVEL_UP_MOVE(61, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_LOCK_ON), + LEVEL_UP_MOVE(79, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(50, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(40, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_THUNDER), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_BITE), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(53, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_INGRAIN), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(57, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_STOCKPILE), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ERUPTION), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(45, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(54, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_STOCKPILE), + LEVEL_UP_MOVE(50, MOVE_SWALLOW), + LEVEL_UP_MOVE(50, MOVE_SPIT_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_STOCKPILE), + LEVEL_UP_MOVE(60, MOVE_SWALLOW), + LEVEL_UP_MOVE(60, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(55, MOVE_SLASH), + LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_REFRESH), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(56, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(39, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_SNATCH), + LEVEL_UP_MOVE(64, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_UPROAR), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_ATTRACT), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_MEMENTO), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_CALM_MIND), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(65, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(41, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(53, MOVE_CALM_MIND), + LEVEL_UP_MOVE(57, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(52, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_POWER_GEM), + LEVEL_UP_MOVE(25, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(45, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(50, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(30, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(51, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_ATTRACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_MEMENTO), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(38, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(61, MOVE_PAYBACK), + LEVEL_UP_MOVE(67, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_MIMIC), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_COPYCAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ME_FIRST), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(58, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(38, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_STOCKPILE), + LEVEL_UP_MOVE(31, MOVE_SWALLOW), + LEVEL_UP_MOVE(31, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_WRING_OUT), + LEVEL_UP_MOVE(47, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_CHARGE), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(51, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_STOCKPILE), + LEVEL_UP_MOVE(56, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_3.h b/src/data/pokemon/level_up_learnsets/gen_3.h new file mode 100644 index 000000000..999c4c29d --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_3.h @@ -0,0 +1,20322 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 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(32, MOVE_GROWTH), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(38, MOVE_GROWTH), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(41, MOVE_GROWTH), + LEVEL_UP_MOVE(53, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN), + 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_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + 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_DRAGON_RAGE), + LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + 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(23, MOVE_RAPID_SPIN), + 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_TACKLE), + 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(25, MOVE_RAPID_SPIN), + 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_TACKLE), + 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(25, MOVE_RAPID_SPIN), + 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 +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + 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 +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + 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 +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + 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(31, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(34, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(34, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_TACKLE), + 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(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + 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(31, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + 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(32, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(40, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + 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_ACID), + 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 sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + 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(28, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_ACID), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + 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_THUNDERBOLT), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(45, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(52, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(62, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + 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_HELPING_HAND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(23, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME), + 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(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_METEOR_MASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 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_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_GRUDGE), + LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + 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_DOUBLE_SLAP), + 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( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + 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_AIR_CUTTER), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(46, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_POISON_FANG), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_POISON_FANG), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(32, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(25, MOVE_SPORE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_SPORE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_GROWTH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + 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_LEECH_LIFE), + 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_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(64, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(46, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_FAKE_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(53, MOVE_SLASH), + LEVEL_UP_MOVE(59, MOVE_FAKE_OUT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(63, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_SUBMISSION), + LEVEL_UP_MOVE(51, MOVE_MIND_READER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(35, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(51, MOVE_SWAGGER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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_ROLE_PLAY), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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(43, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + 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_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + 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(33, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(41, MOVE_SUBMISSION), + LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + 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(33, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(41, MOVE_SUBMISSION), + LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + 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(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(54, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_CONSTRICT), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(36, MOVE_BARRIER), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + 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_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(38, MOVE_BARRIER), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + 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_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_ROLLOUT), + LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + 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_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + 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_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(14, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(14, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_SPARK), + 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_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_LOCK_ON), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(53, MOVE_SCREECH), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, 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 +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + 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_RAGE), + LEVEL_UP_MOVE(33, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + 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_RAGE), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(60, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + 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( 9, MOVE_GROWL), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(64, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + 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(26, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(53, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + 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(26, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(61, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_LEER), + LEVEL_UP_MOVE(41, MOVE_CLAMP), + LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_HARDEN), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(49, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_HARDEN), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(31, MOVE_POISON_GAS), + LEVEL_UP_MOVE(36, MOVE_MEDITATE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, 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(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_POISON_GAS), + LEVEL_UP_MOVE(40, MOVE_MEDITATE), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(27, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_CRABHAMMER), + 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_VISE_GRIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(27, MOVE_STOMP), + LEVEL_UP_MOVE(38, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(57, MOVE_CRABHAMMER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_EGG_BOMB), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 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_GROWL), + 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(32, MOVE_RAGE), + LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + 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_HIGH_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_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH), + 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_MEGA_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DETECT), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_WRAP), + LEVEL_UP_MOVE(34, MOVE_DISABLE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_REFRESH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_MOVE(57, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + 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_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + 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 +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + 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(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(66, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_MOVE(61, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + 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(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(28, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + 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 +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 8, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_TICKLE), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + 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 +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + 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_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + 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(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 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(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + 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_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + 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(41, MOVE_WATERFALL), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(61, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + 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(24, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_MINIMIZE), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + 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_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(13, MOVE_MEDITATE), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_RECYCLE), + LEVEL_UP_MOVE(37, MOVE_TRICK), + LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_BATON_PASS), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + 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(46, MOVE_FURY_CUTTER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + 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_DOUBLE_TEAM), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(57, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(51, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(67, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(67, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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 +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + 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 +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(30, MOVE_LEER), + LEVEL_UP_MOVE(35, MOVE_TWISTER), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + 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(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_TACKLE), + 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_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 sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_THUNDER_SHOCK), + 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 sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_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 +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_MORNING_SUN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_MOONLIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(64, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(71, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(78, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(43, MOVE_ICE_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_BARRIER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + 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_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + 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_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + 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_ANCIENT_POWER), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + 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_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_AGILITY), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_RECYCLE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_ROLLOUT), + LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AMNESIA), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_SNORE), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_BLOCK), + LEVEL_UP_MOVE(42, MOVE_COVET), + LEVEL_UP_MOVE(46, MOVE_ROLLOUT), + LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + 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(61, MOVE_REFLECT), + LEVEL_UP_MOVE(73, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + 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(61, MOVE_CHARGE), + LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(85, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + 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(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + 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_WRAP), + 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_WRAP), + 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(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(61, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_BARRIER), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_MIST), + LEVEL_UP_MOVE(66, MOVE_PSYCHIC), + LEVEL_UP_MOVE(77, MOVE_AMNESIA), + LEVEL_UP_MOVE(88, MOVE_RECOVER), + LEVEL_UP_MOVE(99, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(10, MOVE_TRANSFORM), + LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(30, MOVE_METRONOME), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(45, MOVE_SWIFT), + LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(48, MOVE_REST), + LEVEL_UP_MOVE(59, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CONFUSION), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_CONFUSION), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(31, MOVE_WISH), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(31, MOVE_WISH), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(35, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(41, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(18, MOVE_BATON_PASS), + LEVEL_UP_MOVE(25, MOVE_TICKLE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_AGILITY), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_YAWN), + LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_HAZE), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_PURSUIT), + LEVEL_UP_MOVE(22, MOVE_HAZE), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 6, MOVE_SPITE), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(30, MOVE_PSYBEAM), + LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(53, MOVE_GRUDGE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_PSYBEAM), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(43, MOVE_SPIKES), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(39, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_SPIKES), + LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_YAWN), + LEVEL_UP_MOVE(14, MOVE_GLARE), + LEVEL_UP_MOVE(21, MOVE_SPITE), + LEVEL_UP_MOVE(24, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(27, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(38, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(34, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_RAGE), + LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_MINIMIZE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_ENCORE), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_BIDE), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(11, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_REVERSAL), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_ICY_WIND), + LEVEL_UP_MOVE(50, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_BEAT_UP), + LEVEL_UP_MOVE(64, MOVE_METAL_CLAW), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_FLING), + LEVEL_UP_MOVE(42, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(50, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(60, MOVE_BODY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_HAIL), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(17, MOVE_REFRESH), + LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(54, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(32, MOVE_STEEL_WING), + LEVEL_UP_MOVE(42, MOVE_SPIKES), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(43, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(26, MOVE_BIDE), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_HEAL_BELL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SPARK), + LEVEL_UP_MOVE(51, MOVE_REFLECT), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_THUNDER), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_STOMP), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(61, MOVE_SWAGGER), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_AEROBLAST), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_THIEF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_THIEF), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(37, MOVE_THIEF), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(43, MOVE_PURSUIT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(47, MOVE_SPIT_UP), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(31, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(46, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(54, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(51, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(39, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(50, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(53, MOVE_WHIRLWIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(36, MOVE_GROWTH), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(45, MOVE_MIND_READER), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_REST), + LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(31, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_ENDURE), + LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(46, MOVE_LOCK_ON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 7, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(13, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_DISCHARGE), + LEVEL_UP_MOVE(61, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_LOCK_ON), + LEVEL_UP_MOVE(79, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(50, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(40, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_THUNDER), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_BITE), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(53, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_INGRAIN), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(57, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_STOCKPILE), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ERUPTION), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(45, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(54, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_STOCKPILE), + LEVEL_UP_MOVE(50, MOVE_SWALLOW), + LEVEL_UP_MOVE(50, MOVE_SPIT_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_STOCKPILE), + LEVEL_UP_MOVE(60, MOVE_SWALLOW), + LEVEL_UP_MOVE(60, MOVE_SPIT_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(55, MOVE_SLASH), + LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_REFRESH), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(56, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(39, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_SNATCH), + LEVEL_UP_MOVE(64, MOVE_GRUDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_UPROAR), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_ATTRACT), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_MEMENTO), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_CALM_MIND), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(65, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(40, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SNATCH), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(41, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(53, MOVE_CALM_MIND), + LEVEL_UP_MOVE(57, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(52, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_POWER_GEM), + LEVEL_UP_MOVE(25, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(45, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(50, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(30, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(51, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_ATTRACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_MEMENTO), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(38, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(61, MOVE_PAYBACK), + LEVEL_UP_MOVE(67, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_MIMIC), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_COPYCAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ME_FIRST), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(58, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(38, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_STOCKPILE), + LEVEL_UP_MOVE(31, MOVE_SWALLOW), + LEVEL_UP_MOVE(31, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_WRING_OUT), + LEVEL_UP_MOVE(47, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_CHARGE), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(51, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_STOCKPILE), + LEVEL_UP_MOVE(56, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_4.h b/src/data/pokemon/level_up_learnsets/gen_4.h new file mode 100644 index 000000000..169281c56 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_4.h @@ -0,0 +1,21596 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_GROWTH), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(31, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(39, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(59, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(31, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(34, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(16, MOVE_GUST), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_ASSURANCE), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_TWISTER), + LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_TAILWIND), + LEVEL_UP_MOVE(45, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(23, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_ASSURANCE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_HAZE), + LEVEL_UP_MOVE(41, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_HAZE), + LEVEL_UP_MOVE(56, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(18, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(34, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(27, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(28, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(33, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_COPYCAT), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(19, MOVE_MINIMIZE), + LEVEL_UP_MOVE(22, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(31, MOVE_METRONOME), + LEVEL_UP_MOVE(34, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(43, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(46, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_IMPRISON), + LEVEL_UP_MOVE(24, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(27, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(44, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(17, MOVE_COPYCAT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(13, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(41, MOVE_MIMIC), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(29, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(21, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(35, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(41, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(23, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(53, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_SPORE), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_GROWTH), + LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_SPORE), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(39, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(47, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(55, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(35, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(37, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_POISON_FANG), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(18, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(18, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(33, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_FEINT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(68, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(44, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_AMNESIA), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(41, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_REVERSAL), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(48, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(39, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(35, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(41, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(43, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(53, MOVE_MIND_READER), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(22, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(22, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_FORESIGHT), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(31, MOVE_SUBMISSION), + LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_FORESIGHT), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(32, MOVE_SUBMISSION), + LEVEL_UP_MOVE(36, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(44, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_FORESIGHT), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(32, MOVE_SUBMISSION), + LEVEL_UP_MOVE(36, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(44, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(47, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_WRAP), + LEVEL_UP_MOVE(26, MOVE_BARRIER), + LEVEL_UP_MOVE(29, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(43, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_WRAP), + LEVEL_UP_MOVE(26, MOVE_BARRIER), + LEVEL_UP_MOVE(29, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(22, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(32, MOVE_EXPLOSION), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(22, MOVE_ROLLOUT), + LEVEL_UP_MOVE(27, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(38, MOVE_EXPLOSION), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(22, MOVE_ROLLOUT), + LEVEL_UP_MOVE(27, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(38, MOVE_EXPLOSION), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(47, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(39, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(57, MOVE_PSYCH_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(41, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(47, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_PSYCH_UP), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(57, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(46, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(49, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(43, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(34, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, 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_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(39, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(44, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_CLAMP), + LEVEL_UP_MOVE(28, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(32, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_BRINE), + LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(43, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_NIGHTMARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 6, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(14, MOVE_RAGE), + LEVEL_UP_MOVE(17, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_SANDSTORM), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(41, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(46, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 6, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(14, MOVE_RAGE), + LEVEL_UP_MOVE(17, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_SANDSTORM), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(41, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHTMARE), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + 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_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(26, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(45, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(44, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_BRINE), + LEVEL_UP_MOVE(56, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(63, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(40, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(35, MOVE_SWIFT), + LEVEL_UP_MOVE(40, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(51, MOVE_EXPLOSION), + LEVEL_UP_MOVE(57, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(11, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(21, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(27, MOVE_CONFUSION), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(37, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_THRASH), + LEVEL_UP_MOVE(33, MOVE_FLING), + LEVEL_UP_MOVE(37, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(13, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(17, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(37, MOVE_FORESIGHT), + LEVEL_UP_MOVE(41, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(45, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 6, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(16, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(26, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE(31, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(31, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(31, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(41, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(51, MOVE_COUNTER), + LEVEL_UP_MOVE(56, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(24, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FEINT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(51, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_MOVE(57, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SMOG), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_SLUDGE), + LEVEL_UP_MOVE(28, MOVE_HAZE), + LEVEL_UP_MOVE(33, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_EXPLOSION), + LEVEL_UP_MOVE(42, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(46, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(51, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOG), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_SLUDGE), + LEVEL_UP_MOVE(28, MOVE_HAZE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(55, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(63, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_MOVE(61, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(20, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(27, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(42, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(20, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(27, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(42, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 8, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_TICKLE), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 8, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(22, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_TICKLE), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(22, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_OUTRAGE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(38, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_WATERFALL), + LEVEL_UP_MOVE(41, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(40, MOVE_WATERFALL), + LEVEL_UP_MOVE(47, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + 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(24, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_MINIMIZE), + LEVEL_UP_MOVE(37, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(51, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(53, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(31, MOVE_AVALANCHE), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(38, MOVE_COPYCAT), + LEVEL_UP_MOVE(41, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(21, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_AVALANCHE), + LEVEL_UP_MOVE(39, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(49, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(55, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(67, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(54, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 8, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(18, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUBMISSION), + LEVEL_UP_MOVE(47, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(52, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(26, MOVE_LEER), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(32, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(47, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_MIST), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(27, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_GROWL), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(43, MOVE_AQUA_RING), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(64, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(43, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(64, MOVE_AGILITY), + LEVEL_UP_MOVE(71, MOVE_THUNDER), + LEVEL_UP_MOVE(78, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_EMBER), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(43, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_SMOG), + LEVEL_UP_MOVE(64, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(64, MOVE_PSYCHIC), + LEVEL_UP_MOVE(71, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(78, MOVE_POWER_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_ASSURANCE), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(64, MOVE_SCREECH), + LEVEL_UP_MOVE(71, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(78, MOVE_GUARD_SWAP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(64, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(71, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(78, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(43, MOVE_ICE_FANG), + LEVEL_UP_MOVE(50, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(57, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_BARRIER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SHARPEN), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_TICKLE), + LEVEL_UP_MOVE(46, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(48, MOVE_TICKLE), + LEVEL_UP_MOVE(56, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(46, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(51, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(63, MOVE_WRING_OUT), + LEVEL_UP_MOVE(72, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_RECYCLE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_ROLLOUT), + LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_SNORE), + LEVEL_UP_MOVE(28, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_BLOCK), + LEVEL_UP_MOVE(41, MOVE_ROLLOUT), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_REFLECT), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_TAILWIND), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(85, MOVE_HAIL), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_CHARGE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(71, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(71, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(78, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(85, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(51, MOVE_OUTRAGE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(61, MOVE_OUTRAGE), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(64, MOVE_OUTRAGE), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_BARRIER), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(43, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(57, MOVE_AMNESIA), + LEVEL_UP_MOVE(64, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(64, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(71, MOVE_PSYCHIC), + LEVEL_UP_MOVE(79, MOVE_ME_FIRST), + LEVEL_UP_MOVE(86, MOVE_RECOVER), + LEVEL_UP_MOVE(93, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(100, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_MOVE(10, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(20, MOVE_METRONOME), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_BARRIER), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_AMNESIA), + LEVEL_UP_MOVE(70, MOVE_ME_FIRST), + LEVEL_UP_MOVE(80, MOVE_BATON_PASS), + LEVEL_UP_MOVE(90, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(100, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(28, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_ROLLOUT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_ROLLOUT), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_ROLLOUT), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_ERUPTION), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(22, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(63, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_ME_FIRST), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_ME_FIRST), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(45, MOVE_ROOST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_CONFUSION), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(47, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(52, MOVE_ROOST), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(22, MOVE_BATON_PASS), + LEVEL_UP_MOVE(25, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(24, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SWIFT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(35, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(47, MOVE_AQUA_RING), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(57, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(20, MOVE_ME_FIRST), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(39, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(44, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(44, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(20, MOVE_ME_FIRST), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_TAILWIND), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(54, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(54, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(14, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(19, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(23, MOVE_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(32, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(41, MOVE_POWER_GEM), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(14, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(25, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_POWER_GEM), + LEVEL_UP_MOVE(53, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(14, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(25, MOVE_CHARGE), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(51, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(59, MOVE_POWER_GEM), + LEVEL_UP_MOVE(68, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 2, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(18, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 2, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(32, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 2, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(27, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(47, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(14, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_MIMIC), + LEVEL_UP_MOVE(22, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(31, MOVE_U_TURN), + LEVEL_UP_MOVE(34, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(29, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(29, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(33, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_MOVE(47, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(24, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(48, MOVE_HAZE), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(23, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(32, MOVE_PAYBACK), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_POWER_GEM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(14, MOVE_AGILITY), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_BATON_PASS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_EXPLOSION), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_PAYBACK), + LEVEL_UP_MOVE(38, MOVE_EXPLOSION), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_SPITE), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLAIL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(27, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(38, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(27, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(38, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_RAGE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_ROAR), + LEVEL_UP_MOVE(35, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_MINIMIZE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(29, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_ENCORE), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_WRAP), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(48, MOVE_POWER_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_COUNTER), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(49, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_BEAT_UP), + LEVEL_UP_MOVE(42, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(49, MOVE_ICE_SHARD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_FLING), + LEVEL_UP_MOVE(42, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_RECOVER), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(41, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_RECOVER), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(52, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(61, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(66, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(28, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_MIST), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_HAIL), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(13, MOVE_RECOVER), + LEVEL_UP_MOVE(16, MOVE_REFRESH), + LEVEL_UP_MOVE(20, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(32, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(44, MOVE_POWER_GEM), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(27, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(32, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(36, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 6, MOVE_CONSTRICT), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(29, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(36, MOVE_WRING_OUT), + LEVEL_UP_MOVE(42, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_STEEL_WING), + LEVEL_UP_MOVE(39, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(14, MOVE_ROAR), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(27, MOVE_BEAT_UP), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(40, MOVE_EMBARGO), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(14, MOVE_ROAR), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_BEAT_UP), + LEVEL_UP_MOVE(32, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(38, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(54, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE(10, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_ENDURE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_IMPRISON), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(53, MOVE_ME_FIRST), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(11, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(48, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(55, MOVE_WAKE_UP_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SPARK), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(57, MOVE_DISCHARGE), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(57, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(15, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(50, MOVE_ICE_FANG), + LEVEL_UP_MOVE(57, MOVE_TAILWIND), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_MOVE(28, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(32, MOVE_PAYBACK), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_MOVE(28, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(34, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_MOVE(28, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(34, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(43, MOVE_AEROBLAST), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(43, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(73, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(82, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(59, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(67, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(69, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_ASSURANCE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_EMBARGO), + LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(57, MOVE_THIEF), + LEVEL_UP_MOVE(62, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(45, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(59, MOVE_FLING), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(11, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(11, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(49, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_PURSUIT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(47, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(38, MOVE_STOCKPILE), + LEVEL_UP_MOVE(38, MOVE_SWALLOW), + LEVEL_UP_MOVE(38, MOVE_SPIT_UP), + LEVEL_UP_MOVE(43, MOVE_FLING), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(28, MOVE_PSYCHIC), + LEVEL_UP_MOVE(32, MOVE_IMPRISON), + LEVEL_UP_MOVE(34, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(39, MOVE_CHARM), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(45, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_CHARM), + LEVEL_UP_MOVE(50, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(53, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(33, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_IMPRISON), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(60, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(65, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(39, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(50, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(40, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(47, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(54, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(61, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(45, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(25, MOVE_COUNTER), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(37, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_MOVE(49, MOVE_FLING), + LEVEL_UP_MOVE(55, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_MOVE(52, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_REST), + LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(27, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(32, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(37, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(42, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(47, MOVE_ENDURE), + LEVEL_UP_MOVE(52, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_DISCHARGE), + LEVEL_UP_MOVE(61, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_LOCK_ON), + LEVEL_UP_MOVE(79, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 7, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(13, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_DISCHARGE), + LEVEL_UP_MOVE(61, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_LOCK_ON), + LEVEL_UP_MOVE(79, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 8, MOVE_ATTRACT), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(32, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(36, MOVE_COVET), + LEVEL_UP_MOVE(39, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(18, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(39, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(46, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(51, MOVE_STOCKPILE), + LEVEL_UP_MOVE(51, MOVE_SWALLOW), + LEVEL_UP_MOVE(51, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(36, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(39, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(18, MOVE_MIND_READER), + LEVEL_UP_MOVE(22, MOVE_FEINT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(18, MOVE_MIND_READER), + LEVEL_UP_MOVE(22, MOVE_FEINT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(36, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_CHARGE), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(37, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(29, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(38, MOVE_THUNDER), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(51, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_COPYCAT), + LEVEL_UP_MOVE(29, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(38, MOVE_THUNDER), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_MOVE(48, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(51, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_INGRAIN), + LEVEL_UP_MOVE(37, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_STOCKPILE), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(38, MOVE_STOCKPILE), + LEVEL_UP_MOVE(38, MOVE_SPIT_UP), + LEVEL_UP_MOVE(38, MOVE_SWALLOW), + LEVEL_UP_MOVE(45, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(52, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_WRING_OUT), + LEVEL_UP_MOVE(66, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(56, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(17, MOVE_ASTONISH), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_MIST), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(17, MOVE_ASTONISH), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_MIST), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_DIVE), + LEVEL_UP_MOVE(54, MOVE_BOUNCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(35, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_ERUPTION), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_MOVE(52, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_HEAT_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_SNORE), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_POWER_GEM), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(10, MOVE_COPYCAT), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(73, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(81, MOVE_FEINT), + LEVEL_UP_MOVE(89, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(45, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(53, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(59, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(65, MOVE_SANDSTORM), + LEVEL_UP_MOVE(71, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(23, MOVE_MIST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(40, MOVE_REFRESH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(23, MOVE_MIST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(39, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(46, MOVE_REFRESH), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(62, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(27, MOVE_EMBARGO), + LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_DETECT), + LEVEL_UP_MOVE(44, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(48, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(52, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_EMBARGO), + LEVEL_UP_MOVE(34, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(42, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_EMBARGO), + LEVEL_UP_MOVE(34, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(42, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(56, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(33, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(57, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(57, MOVE_CRUNCH), + LEVEL_UP_MOVE(65, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(37, MOVE_SANDSTORM), + LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(53, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(61, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(71, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(51, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(62, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(73, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(86, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 8, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(57, MOVE_STOCKPILE), + LEVEL_UP_MOVE(57, MOVE_SWALLOW), + LEVEL_UP_MOVE(57, MOVE_SPIT_UP), + LEVEL_UP_MOVE(64, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_STOCKPILE), + LEVEL_UP_MOVE(66, MOVE_SWALLOW), + LEVEL_UP_MOVE(66, MOVE_SPIT_UP), + LEVEL_UP_MOVE(76, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(61, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(46, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(67, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(73, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_AQUA_RING), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_EMBARGO), + LEVEL_UP_MOVE(43, MOVE_SNATCH), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_SNATCH), + LEVEL_UP_MOVE(58, MOVE_GRUDGE), + LEVEL_UP_MOVE(66, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(38, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(47, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(61, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(44, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_DETECT), + LEVEL_UP_MOVE(52, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_ME_FIRST), + LEVEL_UP_MOVE(60, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(65, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(44, MOVE_ICE_FANG), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DIVE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_AGILITY), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(28, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DIVE), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DIVE), + LEVEL_UP_MOVE(64, MOVE_REST), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(22, MOVE_ATTRACT), + LEVEL_UP_MOVE(27, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(31, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(37, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_PURSUIT), + LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_MOVE(48, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(52, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_PURSUIT), + LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(62, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(71, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(55, MOVE_CHARM), + LEVEL_UP_MOVE(60, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(55, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(20, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(60, MOVE_CALM_MIND), + LEVEL_UP_MOVE(65, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(20, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_ERUPTION), + LEVEL_UP_MOVE(60, MOVE_BULK_UP), + LEVEL_UP_MOVE(65, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(90, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_CRUNCH), + LEVEL_UP_MOVE(20, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_FLY), + LEVEL_UP_MOVE(75, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_GRAVITY), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(60, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(65, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(70, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(81, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(73, MOVE_AMNESIA), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_COUNTER), + LEVEL_UP_MOVE(97, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SWIFT), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_AGILITY), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(41, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(53, MOVE_CALM_MIND), + LEVEL_UP_MOVE(57, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(52, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_POWER_GEM), + LEVEL_UP_MOVE(25, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(45, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_AQUA_JET), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(50, MOVE_RAZOR_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(30, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(51, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_ATTRACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_MEMENTO), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(38, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(61, MOVE_PAYBACK), + LEVEL_UP_MOVE(67, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_MIMIC), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_COPYCAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(19, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ME_FIRST), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 6, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(12, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(17, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(34, MOVE_BUG_BITE), + LEVEL_UP_MOVE(39, MOVE_POISON_FANG), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(58, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(38, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_STOCKPILE), + LEVEL_UP_MOVE(31, MOVE_SWALLOW), + LEVEL_UP_MOVE(31, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_WRING_OUT), + LEVEL_UP_MOVE(47, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_CHARGE), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(51, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_STOCKPILE), + LEVEL_UP_MOVE(56, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_5.h b/src/data/pokemon/level_up_learnsets/gen_5.h new file mode 100644 index 000000000..af612cf58 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_5.h @@ -0,0 +1,22119 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_GROWTH), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(31, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(39, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(54, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(62, MOVE_INFERNO), + LEVEL_UP_MOVE(71, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(31, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(34, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(16, MOVE_GUST), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(34, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(46, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_ASSURANCE), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_TWISTER), + LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_TAILWIND), + LEVEL_UP_MOVE(45, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(53, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(68, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(23, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_ASSURANCE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(53, MOVE_DRILL_RUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(33, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(39, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_MOVE(56, MOVE_COIL), + LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(18, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_SLAM), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(34, MOVE_FEINT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(23, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_COPYCAT), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(19, MOVE_BESTOW), + LEVEL_UP_MOVE(22, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(25, MOVE_MINIMIZE), + LEVEL_UP_MOVE(28, MOVE_STORED_POWER), + LEVEL_UP_MOVE(31, MOVE_METRONOME), + LEVEL_UP_MOVE(34, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(49, MOVE_GRAVITY), + LEVEL_UP_MOVE(52, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(58, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(18, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(39, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(17, MOVE_COPYCAT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(13, MOVE_DISABLE), + LEVEL_UP_MOVE(17, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(41, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(45, MOVE_MIMIC), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(23, MOVE_SWIFT), + LEVEL_UP_MOVE(26, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(37, MOVE_POISON_FANG), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(45, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(33, MOVE_ACROBATICS), + LEVEL_UP_MOVE(38, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(42, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_HAZE), + LEVEL_UP_MOVE(52, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(33, MOVE_ACROBATICS), + LEVEL_UP_MOVE(38, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(42, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_HAZE), + LEVEL_UP_MOVE(52, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(21, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(35, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(41, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(23, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(53, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(54, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(66, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(35, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(37, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_POISON_FANG), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(34, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_FEINT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SWIFT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(68, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SOAK), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SOAK), + LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(41, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(63, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(21, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(43, MOVE_OUTRAGE), + LEVEL_UP_MOVE(45, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(34, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(35, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(41, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(53, MOVE_CIRCLE_THROW), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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(22, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_REFLECT), + LEVEL_UP_MOVE(34, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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(22, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_REFLECT), + LEVEL_UP_MOVE(34, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(34, MOVE_SUBMISSION), + LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(43, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(32, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(36, MOVE_SUBMISSION), + LEVEL_UP_MOVE(40, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(32, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(36, MOVE_SUBMISSION), + LEVEL_UP_MOVE(40, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(27, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(47, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_WRAP), + LEVEL_UP_MOVE(26, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(29, MOVE_BARRIER), + LEVEL_UP_MOVE(33, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(54, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_WRAP), + LEVEL_UP_MOVE(26, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(29, MOVE_BARRIER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(38, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_ROLLOUT), + LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(25, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_BULLDOZE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_ROLLOUT), + LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(27, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_BULLDOZE), + LEVEL_UP_MOVE(42, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(27, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_BULLDOZE), + LEVEL_UP_MOVE(42, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(69, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_INFERNO), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_INFERNO), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(68, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(35, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_LOCK_ON), + LEVEL_UP_MOVE(49, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(53, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(57, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(39, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_DISCHARGE), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(62, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(67, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(39, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_DISCHARGE), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(62, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(67, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(34, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + 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_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DIVE), + LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(65, MOVE_HAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(26, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(29, MOVE_FLING), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(40, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(43, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(26, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(29, MOVE_FLING), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_CLAMP), + LEVEL_UP_MOVE(28, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(37, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(40, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(44, MOVE_BRINE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(56, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(13, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(52, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(47, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_HEX), + LEVEL_UP_MOVE(61, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_HEX), + LEVEL_UP_MOVE(61, MOVE_NIGHTMARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHTMARE), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + 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( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(45, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(44, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_BRINE), + LEVEL_UP_MOVE(56, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(63, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(40, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(43, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(35, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(51, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(57, MOVE_EXPLOSION), + LEVEL_UP_MOVE(62, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(11, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(21, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(27, MOVE_CONFUSION), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(37, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_BESTOW), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_THRASH), + LEVEL_UP_MOVE(33, MOVE_FLING), + LEVEL_UP_MOVE(37, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_RETALIATE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(13, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(17, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(37, MOVE_FORESIGHT), + LEVEL_UP_MOVE(41, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(45, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(49, MOVE_ENDURE), + LEVEL_UP_MOVE(53, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(61, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 6, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(26, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE(31, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(46, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(56, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_COUNTER), + LEVEL_UP_MOVE(66, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(24, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FEINT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(46, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(46, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HAZE), + LEVEL_UP_MOVE(29, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(37, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HAZE), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(30, MOVE_BULLDOZE), + LEVEL_UP_MOVE(34, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(52, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(63, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(67, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(30, MOVE_BULLDOZE), + LEVEL_UP_MOVE(34, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(56, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(62, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(71, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(30, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(56, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(62, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(71, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(86, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(20, MOVE_BESTOW), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SING), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(42, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(20, MOVE_BESTOW), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SING), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(42, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_BIND), + LEVEL_UP_MOVE(20, MOVE_GROWTH), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_BIND), + LEVEL_UP_MOVE(20, MOVE_GROWTH), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(56, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(22, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(34, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(38, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_WATERFALL), + LEVEL_UP_MOVE(41, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_SOAK), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(40, MOVE_WATERFALL), + LEVEL_UP_MOVE(47, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_SOAK), + LEVEL_UP_MOVE(72, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(18, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_MINIMIZE), + LEVEL_UP_MOVE(30, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(53, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(33, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(55, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_MOVE(62, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(33, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 8, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(18, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(26, MOVE_SUBMISSION), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_STORM_THROW), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(47, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(26, MOVE_LEER), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(32, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(47, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MIST), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(27, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_HAZE), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_SMOG), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_POWER_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_GUARD_SWAP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(25, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(29, MOVE_BARRIER), + LEVEL_UP_MOVE(33, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_SHARPEN), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(51, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_TICKLE), + LEVEL_UP_MOVE(46, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(52, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(48, MOVE_TICKLE), + LEVEL_UP_MOVE(56, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(67, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(46, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(51, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(63, MOVE_WRING_OUT), + LEVEL_UP_MOVE(72, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SKY_DROP), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(73, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(81, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_RECYCLE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_FLING), + LEVEL_UP_MOVE(44, MOVE_ROLLOUT), + LEVEL_UP_MOVE(49, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(52, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_SNORE), + LEVEL_UP_MOVE(33, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_BLOCK), + LEVEL_UP_MOVE(44, MOVE_ROLLOUT), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(57, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_REFLECT), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_TAILWIND), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(85, MOVE_HAIL), + LEVEL_UP_MOVE(92, MOVE_HURRICANE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_CHARGE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(71, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(92, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(71, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(78, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(85, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(92, MOVE_HURRICANE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(31, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(51, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(81, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(22, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(50, MOVE_AMNESIA), + LEVEL_UP_MOVE(57, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(57, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(64, MOVE_PSYCHIC), + LEVEL_UP_MOVE(71, MOVE_ME_FIRST), + LEVEL_UP_MOVE(79, MOVE_RECOVER), + LEVEL_UP_MOVE(86, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(93, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(100, MOVE_PSYSTRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_MOVE(10, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(20, MOVE_METRONOME), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_BARRIER), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_AMNESIA), + LEVEL_UP_MOVE(70, MOVE_ME_FIRST), + LEVEL_UP_MOVE(80, MOVE_BATON_PASS), + LEVEL_UP_MOVE(90, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(100, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_MOVE(49, MOVE_ROLLOUT), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(53, MOVE_INFERNO), + LEVEL_UP_MOVE(57, MOVE_ROLLOUT), + LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(68, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(69, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_ERUPTION), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(22, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(71, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_ME_FIRST), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_ME_FIRST), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(53, MOVE_ROOST), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_CONFUSION), + LEVEL_UP_MOVE(27, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(62, MOVE_ROOST), + LEVEL_UP_MOVE(67, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(22, MOVE_BATON_PASS), + LEVEL_UP_MOVE(25, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(24, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SWIFT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(31, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(39, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AQUA_RING), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(35, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(52, MOVE_AQUA_RING), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(64, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_METRONOME), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(53, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 5, MOVE_METRONOME), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(53, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(20, MOVE_ME_FIRST), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(39, MOVE_STORED_POWER), + LEVEL_UP_MOVE(44, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(47, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(47, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(20, MOVE_ME_FIRST), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_TAILWIND), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_MOVE(54, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(54, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(59, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(66, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_POWER_GEM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(47, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(51, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(62, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(28, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(31, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_BLOCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_MIMIC), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_BLOCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(34, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(37, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_ACROBATICS), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_U_TURN), + LEVEL_UP_MOVE(48, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(52, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(34, MOVE_ACROBATICS), + LEVEL_UP_MOVE(39, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(59, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(64, MOVE_BOUNCE), + LEVEL_UP_MOVE(69, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_MOVE(47, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(24, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(48, MOVE_HAZE), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(61, MOVE_TORMENT), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_MOVE(75, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(23, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_POWER_GEM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(14, MOVE_AGILITY), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_BATON_PASS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_EXPLOSION), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(70, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 7, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(28, MOVE_GLARE), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(37, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_RAGE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_ROAR), + LEVEL_UP_MOVE(35, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_MINIMIZE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(29, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(27, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(31, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(34, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(38, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BUG_BITE), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(37, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_BEAT_UP), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SNATCH), + LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(47, MOVE_ICE_SHARD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_SNATCH), + LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(47, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(14, MOVE_HARDEN), + LEVEL_UP_MOVE(19, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(41, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(14, MOVE_HARDEN), + LEVEL_UP_MOVE(19, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(44, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(52, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(59, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(67, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(13, MOVE_REFRESH), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_ENDURE), + LEVEL_UP_MOVE(38, MOVE_AQUA_RING), + LEVEL_UP_MOVE(41, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_FLAIL), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(38, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(50, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 6, MOVE_CONSTRICT), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(28, MOVE_WRING_OUT), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(46, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(64, MOVE_SOAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_STEEL_WING), + LEVEL_UP_MOVE(39, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(25, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(26, MOVE_BEAT_UP), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE(10, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_ENDURE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(53, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_ME_FIRST), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(11, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(48, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(55, MOVE_WAKE_UP_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SPARK), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(57, MOVE_DISCHARGE), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(57, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(15, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(50, MOVE_ICE_FANG), + LEVEL_UP_MOVE(57, MOVE_TAILWIND), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(34, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(34, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(63, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(82, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(43, MOVE_AEROBLAST), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(43, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(73, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(82, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(59, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(67, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(69, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_ASSURANCE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_EMBARGO), + LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(57, MOVE_THIEF), + LEVEL_UP_MOVE(62, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_BESTOW), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(49, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_BESTOW), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(53, MOVE_REST), + LEVEL_UP_MOVE(59, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(65, MOVE_FLING), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(11, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(11, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(49, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(46, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_PAYBACK), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_STOCKPILE), + LEVEL_UP_MOVE(39, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SPIT_UP), + LEVEL_UP_MOVE(46, MOVE_FLING), + LEVEL_UP_MOVE(52, MOVE_TAILWIND), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(63, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_PSYCHIC), + LEVEL_UP_MOVE(34, MOVE_IMPRISON), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(43, MOVE_CHARM), + LEVEL_UP_MOVE(45, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(54, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(64, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(60, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(65, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(73, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(80, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(39, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(45, MOVE_FEINT), + LEVEL_UP_MOVE(50, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(53, MOVE_PROTECT), + LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(40, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(47, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(54, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(61, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(68, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(45, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(25, MOVE_COUNTER), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(37, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FLING), + LEVEL_UP_MOVE(61, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_MOVE(52, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(45, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(57, MOVE_REST), + LEVEL_UP_MOVE(57, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(65, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(63, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(71, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(27, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(32, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(37, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(42, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(47, MOVE_ENDURE), + LEVEL_UP_MOVE(52, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(62, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BLOCK), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(22, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(39, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 8, MOVE_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(22, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(39, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 8, MOVE_ATTRACT), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(32, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(36, MOVE_COVET), + LEVEL_UP_MOVE(39, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(18, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(39, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(46, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(53, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(60, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(51, MOVE_STOCKPILE), + LEVEL_UP_MOVE(51, MOVE_SWALLOW), + LEVEL_UP_MOVE(51, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_IRON_HEAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_HEADBUTT), + LEVEL_UP_MOVE(11, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(36, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(39, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_HEADBUTT), + LEVEL_UP_MOVE(11, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(34, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(45, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_HEADBUTT), + LEVEL_UP_MOVE(11, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(34, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(48, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(18, MOVE_MIND_READER), + LEVEL_UP_MOVE(22, MOVE_FEINT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(43, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(18, MOVE_MIND_READER), + LEVEL_UP_MOVE(22, MOVE_FEINT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(49, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_MOVE(62, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(36, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_CHARGE), + LEVEL_UP_MOVE(49, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(52, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(37, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(66, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_COPYCAT), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(38, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_THUNDER), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(63, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_COPYCAT), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(38, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_THUNDER), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(63, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_INGRAIN), + LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(39, MOVE_STOCKPILE), + LEVEL_UP_MOVE(39, MOVE_SPIT_UP), + LEVEL_UP_MOVE(39, MOVE_SWALLOW), + LEVEL_UP_MOVE(44, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(49, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(54, MOVE_WRING_OUT), + LEVEL_UP_MOVE(59, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(38, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(45, MOVE_STOCKPILE), + LEVEL_UP_MOVE(45, MOVE_SPIT_UP), + LEVEL_UP_MOVE(45, MOVE_SWALLOW), + LEVEL_UP_MOVE(52, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(59, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(66, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(56, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(17, MOVE_ASTONISH), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_MIST), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(17, MOVE_ASTONISH), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_MIST), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_DIVE), + LEVEL_UP_MOVE(54, MOVE_BOUNCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_YAWN), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_ERUPTION), + LEVEL_UP_MOVE(59, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_MOVE(52, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(60, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_SNORE), + LEVEL_UP_MOVE(33, MOVE_POWER_GEM), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(40, MOVE_PAYBACK), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_SNORE), + LEVEL_UP_MOVE(35, MOVE_POWER_GEM), + LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(10, MOVE_COPYCAT), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(55, MOVE_DRAGON_CLAW), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(45, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(53, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(59, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(65, MOVE_SANDSTORM), + LEVEL_UP_MOVE(71, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_REFRESH), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(39, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_REFRESH), + LEVEL_UP_MOVE(34, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(64, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_DETECT), + LEVEL_UP_MOVE(36, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SWAGGER), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(23, MOVE_GLARE), + LEVEL_UP_MOVE(27, MOVE_POISON_FANG), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(38, MOVE_HAZE), + LEVEL_UP_MOVE(42, MOVE_POISON_JAB), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(53, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(17, MOVE_PSYWAVE), + LEVEL_UP_MOVE(21, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(33, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 9, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(17, MOVE_PSYWAVE), + LEVEL_UP_MOVE(21, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(33, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(33, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(57, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(38, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(57, MOVE_CRUNCH), + LEVEL_UP_MOVE(65, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_PSYBEAM), + LEVEL_UP_MOVE(17, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(41, MOVE_SANDSTORM), + LEVEL_UP_MOVE(45, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_PSYBEAM), + LEVEL_UP_MOVE(17, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(47, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(61, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 8, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(57, MOVE_STOCKPILE), + LEVEL_UP_MOVE(57, MOVE_SPIT_UP), + LEVEL_UP_MOVE(57, MOVE_SWALLOW), + LEVEL_UP_MOVE(64, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 8, MOVE_ACID), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_STOCKPILE), + LEVEL_UP_MOVE(66, MOVE_SPIT_UP), + LEVEL_UP_MOVE(66, MOVE_SWALLOW), + LEVEL_UP_MOVE(76, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(61, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(46, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(67, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(73, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_AQUA_RING), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(40, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(58, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_EMBARGO), + LEVEL_UP_MOVE(42, MOVE_SNATCH), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_SNATCH), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(58, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(38, MOVE_HEX), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(14, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(47, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(51, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BESTOW), + LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(67, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(71, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(54, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(57, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(60, MOVE_ME_FIRST), + LEVEL_UP_MOVE(65, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_ICE_FANG), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(51, MOVE_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(44, MOVE_ICE_FANG), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(51, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DIVE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_AGILITY), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(28, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DIVE), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DIVE), + LEVEL_UP_MOVE(64, MOVE_REST), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_AQUA_RING), + LEVEL_UP_MOVE(51, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_DRAGON_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(23, MOVE_PURSUIT), + LEVEL_UP_MOVE(26, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(47, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(23, MOVE_PURSUIT), + LEVEL_UP_MOVE(26, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(55, MOVE_CHARM), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(70, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(75, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(80, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(85, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(55, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(70, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(75, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(80, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(85, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(20, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(60, MOVE_CALM_MIND), + LEVEL_UP_MOVE(65, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(20, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_ERUPTION), + LEVEL_UP_MOVE(60, MOVE_BULK_UP), + LEVEL_UP_MOVE(65, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(90, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_CRUNCH), + LEVEL_UP_MOVE(20, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_FLY), + LEVEL_UP_MOVE(75, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_GRAVITY), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(60, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(65, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(70, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(81, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_TELEPORT), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(73, MOVE_AMNESIA), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_COUNTER), + LEVEL_UP_MOVE(97, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_PURSUIT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_SWIFT), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(73, MOVE_AGILITY), + LEVEL_UP_MOVE(81, MOVE_RECOVER), + LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(97, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(52, MOVE_ACROBATICS), + LEVEL_UP_MOVE(58, MOVE_CALM_MIND), + LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(51, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(51, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(29, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(37, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_HYPER_FANG), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(35, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_SPIT_UP), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(52, MOVE_BATON_PASS), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_ATTRACT), + LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_ATTRACT), + LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(51, MOVE_MEMENTO), + LEVEL_UP_MOVE(61, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_IMPRISON), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(45, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(49, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_IMPRISON), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(42, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_ROUND), + LEVEL_UP_MOVE(33, MOVE_MIMIC), + LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(53, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(19, MOVE_ME_FIRST), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(33, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(47, MOVE_CALM_MIND), + LEVEL_UP_MOVE(51, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(60, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(65, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_POISON_FANG), + LEVEL_UP_MOVE(27, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_POISON_FANG), + LEVEL_UP_MOVE(27, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(57, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(45, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(50, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(41, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(54, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(62, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(37, MOVE_STOCKPILE), + LEVEL_UP_MOVE(37, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_MOVE(51, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(54, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(66, MOVE_SOAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(50, MOVE_HEX), + LEVEL_UP_MOVE(57, MOVE_CHARGE), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_MOVE(50, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(65, MOVE_PAYBACK), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(90, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_MOVE(50, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(51, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_STOCKPILE), + LEVEL_UP_MOVE(56, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_6.h b/src/data/pokemon/level_up_learnsets/gen_6.h new file mode 100644 index 000000000..59b05f960 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_6.h @@ -0,0 +1,22769 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_GROWTH), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(31, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GROWTH), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(39, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(54, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(62, MOVE_INFERNO), + LEVEL_UP_MOVE(71, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(22, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(31, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(34, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(16, MOVE_GUST), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(34, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(46, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_ASSURANCE), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_TWISTER), + LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_TAILWIND), + LEVEL_UP_MOVE(45, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(53, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(68, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRILL_RUN), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(23, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_ASSURANCE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(53, MOVE_DRILL_RUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(33, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(38, MOVE_BELCH), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(39, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_BELCH), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_MOVE(56, MOVE_COIL), + LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_NUZZLE), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(24, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(53, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_POISON_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(28, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(58, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_COPYCAT), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(16, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(19, MOVE_BESTOW), + LEVEL_UP_MOVE(22, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(25, MOVE_MINIMIZE), + LEVEL_UP_MOVE(28, MOVE_STORED_POWER), + LEVEL_UP_MOVE(31, MOVE_METRONOME), + LEVEL_UP_MOVE(34, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_GRAVITY), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(58, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_POUND), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_COPYCAT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_POUND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MIMIC), + LEVEL_UP_MOVE(40, MOVE_GYRO_BALL), + 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( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(23, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_POISON_FANG), + LEVEL_UP_MOVE(29, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_HAZE), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(43, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(27, MOVE_POISON_FANG), + LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(35, MOVE_ACROBATICS), + LEVEL_UP_MOVE(40, MOVE_HAZE), + LEVEL_UP_MOVE(43, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(27, MOVE_POISON_FANG), + LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(35, MOVE_ACROBATICS), + LEVEL_UP_MOVE(40, MOVE_HAZE), + LEVEL_UP_MOVE(43, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_TOXIC), + LEVEL_UP_MOVE(39, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_MOONBLAST), + LEVEL_UP_MOVE(47, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(29, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(64, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(24, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(54, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(66, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(35, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(37, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_POISON_FANG), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(34, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(28, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SWIFT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SOAK), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SOAK), + LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(53, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(41, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(63, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_REVERSAL), + LEVEL_UP_MOVE(21, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(43, MOVE_OUTRAGE), + LEVEL_UP_MOVE(45, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(34, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(35, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(41, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(11, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(21, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_MUD_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(53, MOVE_CIRCLE_THROW), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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_MIRACLE_EYE), + LEVEL_UP_MOVE(26, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(31, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(36, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_TRICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + 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_MIRACLE_EYE), + LEVEL_UP_MOVE(26, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(31, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(36, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_TRICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(33, MOVE_SUBMISSION), + LEVEL_UP_MOVE(37, MOVE_BULK_UP), + LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(37, MOVE_SUBMISSION), + LEVEL_UP_MOVE(43, MOVE_BULK_UP), + LEVEL_UP_MOVE(47, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(53, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(57, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 9, MOVE_FORESIGHT), + LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(37, MOVE_SUBMISSION), + LEVEL_UP_MOVE(43, MOVE_BULK_UP), + LEVEL_UP_MOVE(47, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(53, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(57, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(27, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(47, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_CONSTRICT), + LEVEL_UP_MOVE(10, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_WRAP), + LEVEL_UP_MOVE(22, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_BARRIER), + LEVEL_UP_MOVE(31, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HEX), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_CONSTRICT), + LEVEL_UP_MOVE(10, MOVE_ACID), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_WRAP), + LEVEL_UP_MOVE(22, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_BARRIER), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_HEX), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_INFERNO), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_INFERNO), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(68, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(17, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(47, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(17, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(33, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_LOCK_ON), + LEVEL_UP_MOVE(53, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(59, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(63, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(17, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(33, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_LOCK_ON), + LEVEL_UP_MOVE(53, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(59, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(63, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_FEINT), + LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_UPROAR), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + 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_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DIVE), + LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(65, MOVE_HAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_CLAMP), + LEVEL_UP_MOVE(28, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(37, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(40, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(44, MOVE_BRINE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(56, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(13, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(50, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(47, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_HEX), + LEVEL_UP_MOVE(61, MOVE_NIGHTMARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_CURSE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(28, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(55, MOVE_HEX), + LEVEL_UP_MOVE(61, MOVE_NIGHTMARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_RAGE), + LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_RAGE), + LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_NIGHTMARE), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + 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( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_MEDITATE), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(31, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(45, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(44, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_BRINE), + LEVEL_UP_MOVE(56, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(63, MOVE_FLAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 4, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(58, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(11, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(21, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(27, MOVE_CONFUSION), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(37, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_BESTOW), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_THRASH), + LEVEL_UP_MOVE(33, MOVE_FLING), + LEVEL_UP_MOVE(37, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_RETALIATE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_MEGA_KICK), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(13, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(17, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(37, MOVE_FORESIGHT), + LEVEL_UP_MOVE(41, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(45, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(49, MOVE_ENDURE), + LEVEL_UP_MOVE(53, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(61, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 6, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(26, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE(31, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(46, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(50, MOVE_DETECT), + LEVEL_UP_MOVE(56, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_COUNTER), + LEVEL_UP_MOVE(66, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(24, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FEINT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(46, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(46, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(50, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HAZE), + LEVEL_UP_MOVE(29, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(37, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(42, MOVE_BELCH), + LEVEL_UP_MOVE(45, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_HAZE), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_MEGAHORN), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(62, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_WRECKER), + LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(62, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(69, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(20, MOVE_BESTOW), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SING), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(42, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(20, MOVE_BESTOW), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SING), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(42, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_BIND), + LEVEL_UP_MOVE(20, MOVE_GROWTH), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(38, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_TICKLE), + LEVEL_UP_MOVE(46, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_BIND), + LEVEL_UP_MOVE(20, MOVE_GROWTH), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(56, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(22, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(34, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_RING), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_WATERFALL), + LEVEL_UP_MOVE(37, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(40, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_RING), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_WATERFALL), + LEVEL_UP_MOVE(40, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(24, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_MINIMIZE), + LEVEL_UP_MOVE(35, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(49, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(33, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(55, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_MOVE(62, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(65, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(33, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 8, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(11, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(18, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(26, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(29, MOVE_SUBMISSION), + LEVEL_UP_MOVE(33, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_STORM_THROW), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(26, MOVE_LEER), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(32, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(47, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MIST), + LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(27, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_REFRESH), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_HAZE), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(20, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_SMOG), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_POWER_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_GUARD_SWAP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(25, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(29, MOVE_BARRIER), + LEVEL_UP_MOVE(33, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_SHARPEN), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_TICKLE), + LEVEL_UP_MOVE(46, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(48, MOVE_TICKLE), + LEVEL_UP_MOVE(56, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(67, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(46, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(26, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(63, MOVE_WRING_OUT), + LEVEL_UP_MOVE(72, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SKY_DROP), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(73, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(81, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(36, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_FLING), + LEVEL_UP_MOVE(44, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(49, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(50, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_SNORE), + LEVEL_UP_MOVE(33, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(36, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_BLOCK), + LEVEL_UP_MOVE(44, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(57, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_REFLECT), + LEVEL_UP_MOVE(57, MOVE_HAIL), + LEVEL_UP_MOVE(64, MOVE_TAILWIND), + LEVEL_UP_MOVE(71, MOVE_BLIZZARD), + LEVEL_UP_MOVE(78, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(85, MOVE_ROOST), + LEVEL_UP_MOVE(92, MOVE_HURRICANE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_CHARGE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(57, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(64, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(71, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_ROOST), + LEVEL_UP_MOVE(92, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(64, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(71, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(78, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(85, MOVE_ROOST), + LEVEL_UP_MOVE(92, MOVE_HURRICANE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(31, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(51, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(81, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(22, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(43, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_BARRIER), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(79, MOVE_AMNESIA), + LEVEL_UP_MOVE(86, MOVE_MIST), + LEVEL_UP_MOVE(93, MOVE_ME_FIRST), + LEVEL_UP_MOVE(100, MOVE_PSYSTRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_MOVE(10, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(20, MOVE_METRONOME), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_BARRIER), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_AMNESIA), + LEVEL_UP_MOVE(70, MOVE_ME_FIRST), + LEVEL_UP_MOVE(80, MOVE_BATON_PASS), + LEVEL_UP_MOVE(90, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(100, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(32, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_MOVE(49, MOVE_ROLLOUT), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(53, MOVE_INFERNO), + LEVEL_UP_MOVE(57, MOVE_ROLLOUT), + LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(68, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(69, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_ERUPTION), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(22, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(71, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_ME_FIRST), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_ME_FIRST), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(53, MOVE_ROOST), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_CONFUSION), + LEVEL_UP_MOVE(27, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(62, MOVE_ROOST), + LEVEL_UP_MOVE(67, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(22, MOVE_BATON_PASS), + LEVEL_UP_MOVE(25, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(14, MOVE_REFLECT), + LEVEL_UP_MOVE(14, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(24, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SWIFT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(50, MOVE_STICKY_WEB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(58, MOVE_STICKY_WEB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_AQUA_RING), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(47, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(50, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_RING), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(54, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(58, MOVE_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_METRONOME), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(53, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 5, MOVE_METRONOME), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(14, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(17, MOVE_ENCORE), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(53, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_STORED_POWER), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PSYCHIC), + LEVEL_UP_MOVE(36, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(47, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(50, MOVE_ME_FIRST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_STORED_POWER), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(29, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(53, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(57, MOVE_ME_FIRST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_POWER_GEM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(47, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(51, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(62, MOVE_THUNDER), + LEVEL_UP_MOVE(65, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(23, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(28, MOVE_AQUA_RING), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(31, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_BLOCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_BLOCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(34, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(37, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_ACROBATICS), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_U_TURN), + LEVEL_UP_MOVE(48, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(52, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(34, MOVE_ACROBATICS), + LEVEL_UP_MOVE(39, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(59, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(64, MOVE_BOUNCE), + LEVEL_UP_MOVE(69, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_MOVE(47, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(19, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(24, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_MIST), + LEVEL_UP_MOVE(48, MOVE_HAZE), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(61, MOVE_TORMENT), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_MOVE(75, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(23, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_POWER_GEM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_EXPLOSION), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_BIDE), + LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(70, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 7, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(28, MOVE_GLARE), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(37, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_RAGE), + LEVEL_UP_MOVE(37, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(43, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_ROAR), + LEVEL_UP_MOVE(35, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_MINIMIZE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE), + LEVEL_UP_MOVE(17, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(29, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(27, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(31, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(34, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(38, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BUG_BITE), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_STICKY_WEB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 7, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(31, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MEGAHORN), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_BEAT_UP), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SNATCH), + LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(47, MOVE_ICE_SHARD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_SNATCH), + LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(47, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(58, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_AMNESIA), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_RECOVER), + LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(13, MOVE_REFRESH), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_BRINE), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_ENDURE), + LEVEL_UP_MOVE(38, MOVE_AQUA_RING), + LEVEL_UP_MOVE(41, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(38, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(50, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 6, MOVE_CONSTRICT), + LEVEL_UP_MOVE(10, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(28, MOVE_WRING_OUT), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(46, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(64, MOVE_SOAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_STEEL_WING), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(45, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(50, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(53, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(25, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(26, MOVE_BEAT_UP), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(50, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_ME_FIRST), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(11, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(48, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SPARK), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(57, MOVE_DISCHARGE), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(57, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(15, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(50, MOVE_ICE_FANG), + LEVEL_UP_MOVE(57, MOVE_TAILWIND), + LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_CALM_MIND), + LEVEL_UP_MOVE(85, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(34, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_SANDSTORM), + LEVEL_UP_MOVE(10, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(23, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_THRASH), + LEVEL_UP_MOVE(34, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(63, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(82, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(43, MOVE_AEROBLAST), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(15, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(29, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(43, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(50, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(71, MOVE_RECOVER), + LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(93, MOVE_CALM_MIND), + LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(73, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(82, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_DETECT), + LEVEL_UP_MOVE(37, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DETECT), + LEVEL_UP_MOVE(43, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(48, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(58, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(39, MOVE_DETECT), + LEVEL_UP_MOVE(45, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(51, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(57, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(63, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(69, MOVE_SCREECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(28, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(53, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(37, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(20, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BIDE), + LEVEL_UP_MOVE(22, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BIDE), + LEVEL_UP_MOVE(22, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(63, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(19, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_EMBARGO), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_EMBARGO), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(17, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(41, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(17, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_COVET), + LEVEL_UP_MOVE(27, MOVE_BESTOW), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(48, MOVE_FLING), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ABSORB), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(27, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_RAGE), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_BUBBLE), + LEVEL_UP_MOVE(12, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_BUBBLE), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(20, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(27, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(33, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(12, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(20, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(32, MOVE_HURRICANE), + LEVEL_UP_MOVE(44, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(27, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_ROOST), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(43, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(33, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_SPIT_UP), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(22, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(24, MOVE_CALM_MIND), + LEVEL_UP_MOVE(27, MOVE_PSYCHIC), + LEVEL_UP_MOVE(29, MOVE_IMPRISON), + LEVEL_UP_MOVE(32, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(42, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 4, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(26, MOVE_CALM_MIND), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_CHARM), + LEVEL_UP_MOVE(44, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(51, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 4, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_WISH), + LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(26, MOVE_CALM_MIND), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(35, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(44, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(53, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(58, MOVE_STORED_POWER), + LEVEL_UP_MOVE(62, MOVE_MOONBLAST), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 4, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_FEINT), + LEVEL_UP_MOVE(44, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(58, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_HAZE), + LEVEL_UP_MOVE(30, MOVE_AQUA_JET), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_STICKY_WEB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(26, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(32, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(39, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_UPROAR), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(47, MOVE_FLING), + LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_MIND_READER), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SPITE), + LEVEL_UP_MOVE(21, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(37, MOVE_GRUDGE), + LEVEL_UP_MOVE(41, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_UPROAR), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(39, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(43, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(58, MOVE_BOOMBURST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(30, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(38, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(42, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_ASSIST), + LEVEL_UP_MOVE(34, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_POWER_GEM), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_QUASH), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(17, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_STOCKPILE), + LEVEL_UP_MOVE(41, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_SPIT_UP), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(55, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(44, MOVE_CHARGE), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_ROAR), + LEVEL_UP_MOVE(42, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(48, MOVE_CHARGE), + LEVEL_UP_MOVE(54, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_BESTOW), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(26, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_WISH), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_COVET), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_INGRAIN), + LEVEL_UP_MOVE(37, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_STOCKPILE), + LEVEL_UP_MOVE(30, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_SWALLOW), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(49, MOVE_BELCH), + LEVEL_UP_MOVE(54, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_AQUA_JET), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_ICE_FANG), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_POISON_FANG), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_AQUA_JET), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_ICE_FANG), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(56, MOVE_TAUNT), + LEVEL_UP_MOVE(62, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_BRINE), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_DIVE), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_DIVE), + LEVEL_UP_MOVE(51, MOVE_BOUNCE), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(65, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_YAWN), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_ERUPTION), + LEVEL_UP_MOVE(59, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(27, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_FLAIL), + LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(47, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(40, MOVE_PAYBACK), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(32, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(47, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(45, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(50, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(32, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(30, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(38, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(42, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(52, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_EMBARGO), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_GLARE), + LEVEL_UP_MOVE(22, MOVE_POISON_FANG), + LEVEL_UP_MOVE(25, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(34, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_BELCH), + LEVEL_UP_MOVE(46, MOVE_COIL), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(17, MOVE_EMBARGO), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(29, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(17, MOVE_EMBARGO), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(29, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(15, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SNORE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(35, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(15, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SNORE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_IMPRISON), + LEVEL_UP_MOVE(46, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_IMPRISON), + LEVEL_UP_MOVE(58, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(52, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(52, MOVE_STOCKPILE), + LEVEL_UP_MOVE(52, MOVE_SPIT_UP), + LEVEL_UP_MOVE(52, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(46, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_PROTECT), + LEVEL_UP_MOVE(61, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_REFRESH), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_TWISTER), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_RING), + LEVEL_UP_MOVE(24, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(27, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(31, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_ATTRACT), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(35, MOVE_BLIZZARD), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_FEINT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_SNATCH), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_TRICK), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_SNATCH), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(58, MOVE_TRICK), + LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_HEX), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(54, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HEX), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_PAYBACK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HEX), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_PAYBACK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(30, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_BESTOW), + LEVEL_UP_MOVE(50, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(61, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(27, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(52, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(33, MOVE_DETECT), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_HAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(28, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(41, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(61, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(17, MOVE_BRINE), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(17, MOVE_BRINE), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(52, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(19, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_ICE_FANG), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_AMNESIA), + LEVEL_UP_MOVE(19, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_YAWN), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(14, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_ATTRACT), + LEVEL_UP_MOVE(27, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(23, MOVE_PURSUIT), + LEVEL_UP_MOVE(26, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(47, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(23, MOVE_PURSUIT), + LEVEL_UP_MOVE(26, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(52, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(61, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 7, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(61, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 7, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(43, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(61, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_CHARM), + LEVEL_UP_MOVE(10, MOVE_STORED_POWER), + LEVEL_UP_MOVE(13, MOVE_REFRESH), + LEVEL_UP_MOVE(16, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_MIST_BALL), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(32, MOVE_RECOVER), + LEVEL_UP_MOVE(36, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(61, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 4, MOVE_PROTECT), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(10, MOVE_STORED_POWER), + LEVEL_UP_MOVE(13, MOVE_REFRESH), + LEVEL_UP_MOVE(16, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(32, MOVE_RECOVER), + LEVEL_UP_MOVE(36, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(61, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_ORIGIN_PULSE), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(20, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_PRECIPICE_BLADES), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(65, MOVE_FISSURE), + LEVEL_UP_MOVE(75, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(80, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(90, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_FLY), + LEVEL_UP_MOVE(75, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_GRAVITY), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(60, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(65, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(70, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SNATCH), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SNATCH), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_COUNTER), + LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(52, MOVE_ACROBATICS), + LEVEL_UP_MOVE(58, MOVE_CALM_MIND), + LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_BIDE), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_BUBBLE), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(36, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(33, MOVE_AMNESIA), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(53, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(67, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(30, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(51, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(51, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(38, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(29, MOVE_HEAL_ORDER), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(37, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(45, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(57, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(19, MOVE_NUZZLE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_HYPER_FANG), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(35, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(47, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(11, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SWALLOW), + LEVEL_UP_MOVE(32, MOVE_SPIT_UP), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(52, MOVE_BATON_PASS), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_MOVE(65, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_FRUSTRATION), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_BOUNCE), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_RETURN), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(43, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(66, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_ATTRACT), + LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(50, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ASSIST), + LEVEL_UP_MOVE(32, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_ATTRACT), + LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(51, MOVE_MEMENTO), + LEVEL_UP_MOVE(56, MOVE_BELCH), + LEVEL_UP_MOVE(61, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_IMPRISON), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_PAYBACK), + LEVEL_UP_MOVE(45, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(49, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_IMPRISON), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(42, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_CHATTER), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_ROUND), + LEVEL_UP_MOVE(33, MOVE_MIMIC), + LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(50, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(19, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEMENTO), + LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_COUNTER), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(19, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(24, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(33, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(37, MOVE_ME_FIRST), + LEVEL_UP_MOVE(42, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(47, MOVE_CALM_MIND), + LEVEL_UP_MOVE(51, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(60, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(65, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_POISON_FANG), + LEVEL_UP_MOVE(27, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(49, MOVE_CROSS_POISON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_POISON_FANG), + LEVEL_UP_MOVE(27, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(57, MOVE_CROSS_POISON), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(45, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(47, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_FLATTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(41, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(54, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(58, MOVE_BELCH), + LEVEL_UP_MOVE(62, MOVE_FLATTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(37, MOVE_STOCKPILE), + LEVEL_UP_MOVE(37, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_WRING_OUT), + LEVEL_UP_MOVE(50, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(54, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(66, MOVE_SOAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(26, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(31, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_UPROAR), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(43, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(50, MOVE_HEX), + LEVEL_UP_MOVE(57, MOVE_CHARGE), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_FLAIL), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(50, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_COPYCAT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(31, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(61, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(24, MOVE_METAL_BURST), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME), + LEVEL_UP_MOVE(50, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGMA_STORM), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(65, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(73, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(88, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(65, MOVE_PAYBACK), + LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP), + LEVEL_UP_MOVE(90, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(33, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE), + LEVEL_UP_MOVE(50, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(93, MOVE_PSYCHIC), + LEVEL_UP_MOVE(99, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_REFRESH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_INFERNO), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(89, MOVE_STORED_POWER), + LEVEL_UP_MOVE(97, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_ENCORE), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_RETALIATE), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_AQUA_JET), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_WORK_UP), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_RETALIATE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(42, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(52, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_RETALIATE), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(51, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_SNATCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASSIST), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASSIST), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_TORMENT), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(47, MOVE_SNATCH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(58, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 7, MOVE_YAWN), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(13, MOVE_IMPRISON), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(29, MOVE_NIGHTMARE), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(47, MOVE_STORED_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_DETECT), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_FACADE), + LEVEL_UP_MOVE(46, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_FACADE), + LEVEL_UP_MOVE(54, MOVE_TAILWIND), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(18, MOVE_ROOST), + LEVEL_UP_MOVE(23, MOVE_DETECT), + LEVEL_UP_MOVE(27, MOVE_TAUNT), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(49, MOVE_SWAGGER), + LEVEL_UP_MOVE(55, MOVE_FACADE), + LEVEL_UP_MOVE(60, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_ION_DELUGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 8, MOVE_GUST), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(15, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(19, MOVE_IMPRISON), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(29, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(55, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(62, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_ATTRACT), + LEVEL_UP_MOVE(25, MOVE_SECRET_POWER), + LEVEL_UP_MOVE(29, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(12, MOVE_LOW_KICK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_BULK_UP), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_UPROAR), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(36, MOVE_ACID), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(21, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_STORM_THROW), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(21, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(33, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(34, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(33, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(43, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(30, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(10, MOVE_GUST), + LEVEL_UP_MOVE(28, MOVE_TAILWIND), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(17, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(44, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FLAIL), + LEVEL_UP_MOVE(50, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_EMBARGO), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(42, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_INCINERATE), + LEVEL_UP_MOVE( 9, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(19, MOVE_FACADE), + LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_WORK_UP), + LEVEL_UP_MOVE(27, MOVE_THRASH), + LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(39, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(54, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(33, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(23, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_FACADE), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_SWAGGER), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FACADE), + LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(11, MOVE_TAILWIND), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(28, MOVE_REFLECT), + LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(38, MOVE_GRAVITY), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_GRUDGE), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_HAZE), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(11, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_U_TURN), + LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(61, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_BELCH), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(23, MOVE_STOCKPILE), + LEVEL_UP_MOVE(23, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(39, MOVE_TOXIC), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_BELCH), + LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(59, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(33, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(45, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(53, MOVE_IMPRISON), + LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 5, MOVE_PURSUIT), + LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_TORMENT), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_EMBARGO), + LEVEL_UP_MOVE(49, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(59, MOVE_IMPRISON), + LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TICKLE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_ENCORE), + LEVEL_UP_MOVE(19, MOVE_SWIFT), + LEVEL_UP_MOVE(21, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_AFTER_YOU), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 3, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_EMBARGO), + LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_FLATTER), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TELEKINESIS), + LEVEL_UP_MOVE(54, MOVE_CHARM), + LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SNATCH), + LEVEL_UP_MOVE( 3, MOVE_REFLECT), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SNATCH), + LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_UPROAR), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(19, MOVE_AVALANCHE), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(59, MOVE_BLIZZARD), + LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(15, MOVE_NUZZLE), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(13, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(60, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(50, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(62, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_HEX), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEX), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(65, MOVE_STICKY_WEB), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(40, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(46, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(53, MOVE_PAYBACK), + LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(67, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(50, MOVE_LOCK_ON), + LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(56, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE( 6, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(21, MOVE_BIND), + LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_DISCHARGE), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(76, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_COIL), + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE( 1, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_HEADBUTT), + LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 3, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(24, MOVE_IMPRISON), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_INFERNO), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(69, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASSURANCE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(58, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 9, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_MOVE(59, MOVE_THRASH), + LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 9, MOVE_SHARPEN), + LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(21, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(33, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_REFLECT), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_CURSE), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_ME_FIRST), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_U_TURN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(49, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(21, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(25, MOVE_DISCHARGE), + LEVEL_UP_MOVE(30, MOVE_ENDURE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(50, MOVE_REVENGE), + LEVEL_UP_MOVE(55, MOVE_FLAIL), + LEVEL_UP_MOVE(61, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(50, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_CALM_MIND), + LEVEL_UP_MOVE(29, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(63, MOVE_REVERSAL), + LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(35, MOVE_REVENGE), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(75, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(54, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(62, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_TORMENT), + LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_ASSURANCE), + LEVEL_UP_MOVE(38, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(41, MOVE_EMBARGO), + LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_RAGE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(41, MOVE_MEGAHORN), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(50, MOVE_SKY_DROP), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(55, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_BONE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PLUCK), + LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(19, MOVE_FLATTER), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(32, MOVE_DEFOG), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(46, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(50, MOVE_EMBARGO), + LEVEL_UP_MOVE(51, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(57, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(11, MOVE_BIND), + LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SNATCH), + LEVEL_UP_MOVE(31, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(36, MOVE_BUG_BITE), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_AMNESIA), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_STOCKPILE), + LEVEL_UP_MOVE(50, MOVE_SPIT_UP), + LEVEL_UP_MOVE(50, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_BUG_BITE), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(61, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(66, MOVE_METAL_SOUND), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(62, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(38, MOVE_WORK_UP), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(55, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(79, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_BUG_BITE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_AMNESIA), + LEVEL_UP_MOVE(90, MOVE_THRASH), + LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(20, MOVE_GUST), + LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(50, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(90, MOVE_HURRICANE), + LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_METAL_BURST), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(67, MOVE_HURRICANE), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_CHARGE), + LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(67, MOVE_THUNDER), + LEVEL_UP_MOVE(73, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(71, MOVE_CRUNCH), + LEVEL_UP_MOVE(78, MOVE_THUNDER), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 7, MOVE_IMPRISON), + LEVEL_UP_MOVE(13, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(19, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_SANDSTORM), + LEVEL_UP_MOVE(67, MOVE_FISSURE), + LEVEL_UP_MOVE(73, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_GLACIATE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(31, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(61, MOVE_WORK_UP), + LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(51, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(44, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(38, MOVE_BOUNCE), + LEVEL_UP_MOVE(42, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(47, MOVE_FACADE), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_FACADE), + LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ACROBATICS), + LEVEL_UP_MOVE(46, MOVE_ME_FIRST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_STEEL_WING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PECK), + LEVEL_UP_MOVE(13, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_EMBER), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(44, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_ME_FIRST), + LEVEL_UP_MOVE(55, MOVE_TAILWIND), + LEVEL_UP_MOVE(60, MOVE_STEEL_WING), + LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_WORK_UP), + LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(27, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_TAUNT), + LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE), + LEVEL_UP_MOVE(35, MOVE_REFLECT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(26, MOVE_RETALIATE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(41, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(17, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(29, MOVE_ATTRACT), + LEVEL_UP_MOVE(31, MOVE_MOONBLAST), + LEVEL_UP_MOVE(35, MOVE_CHARM), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(57, MOVE_REFLECT), + LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(13, MOVE_ROUND), + LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(21, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(45, MOVE_WISH), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(12, MOVE_SWAGGER), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_PLUCK), + LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(20, MOVE_CLAMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(23, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(67, MOVE_TWISTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(43, MOVE_AQUA_JET), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(34, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(47, MOVE_AQUA_JET), + LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(57, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(35, MOVE_BULLDOZE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ROAR), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_BIDE), + LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(44, MOVE_ENCORE), + LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(18, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_ROUND), + LEVEL_UP_MOVE(34, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_ENCORE), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(74, MOVE_BLIZZARD), + LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROOST), + LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_FLING), + LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(55, MOVE_SKY_DROP), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_CHARM), + LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(20, MOVE_NUZZLE), + LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_POWER_GEM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_BIDE), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(63, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_SPIKES), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_RECYCLE), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_INGRAIN), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(23, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE), + LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(62, MOVE_HORN_LEECH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(75, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(39, MOVE_AVALANCHE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_SHARPEN), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(26, MOVE_ICE_FANG), + LEVEL_UP_MOVE(30, MOVE_ICE_BALL), + LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(42, MOVE_AVALANCHE), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(51, MOVE_RECOVER), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(65, MOVE_CRUNCH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(58, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(11, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(27, MOVE_ROOST), + LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(43, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(75, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(26, MOVE_GEOMANCY), + LEVEL_UP_MOVE(35, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_MEGAHORN), + LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(55, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(59, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(72, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(18, MOVE_SNARL), + LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(35, MOVE_DISABLE), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLARE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(10, MOVE_DIG), + LEVEL_UP_MOVE(18, MOVE_BIND), + LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_MOVE(51, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_COIL), + LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(93, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_SHARPEN), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(49, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(68, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_SCALD), + LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(76, MOVE_EXPLOSION), + LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(18, MOVE_FORESIGHT), + LEVEL_UP_MOVE(22, MOVE_PLUCK), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_PECK), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_LICK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_MOONBLAST), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ENCORE), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(13, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_BRINE), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BEAT_UP), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_TOXIC), + LEVEL_UP_MOVE(25, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(22, MOVE_BIDE), + LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 5, MOVE_INFESTATION), + LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(13, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_AQUA_RING), + LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(57, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(14, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(39, MOVE_MOONBLAST), + LEVEL_UP_MOVE(43, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_FLASH), + LEVEL_UP_MOVE(11, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(49, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(16, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(24, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(29, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(39, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BIDE), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_FLAIL), + LEVEL_UP_MOVE(23, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_WRAP), + LEVEL_UP_MOVE(19, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(11, MOVE_QUASH), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_INSTRUCT), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(39, MOVE_CALM_MIND), + LEVEL_UP_MOVE(43, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(18, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_BESTOW), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(13, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_SHORE_UP), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(17, MOVE_COUNTER), + LEVEL_UP_MOVE(21, MOVE_PURIFY), + LEVEL_UP_MOVE(25, MOVE_CURSE), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(41, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_IMPRISON), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAGE), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(60, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(65, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(21, MOVE_ENDURE), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(49, MOVE_OVERHEAT), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_CHARGE), + LEVEL_UP_MOVE(17, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_NUZZLE), + LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(33, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_MIMIC), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE( 9, MOVE_PROTECT), + LEVEL_UP_MOVE(13, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_BIDE), + LEVEL_UP_MOVE(13, MOVE_PROTECT), + LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_WORK_UP), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_PSYWAVE), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(32, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(38, MOVE_TICKLE), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(53, MOVE_FLATTER), + LEVEL_UP_MOVE(58, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(32, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(38, MOVE_ROTOTILLER), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(32, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_DEFOG), + LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(53, MOVE_AQUA_RING), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(23, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(13, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(31, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(31, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(13, MOVE_BULK_UP), + LEVEL_UP_MOVE(19, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(23, MOVE_ENDURE), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(43, MOVE_COUNTER), + LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(53, MOVE_LUNGE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(67, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(23, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(29, MOVE_BOUNCE), + LEVEL_UP_MOVE(31, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(59, MOVE_ME_FIRST), + LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_INGRAIN), + LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(47, MOVE_DISCHARGE), + LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(67, MOVE_ION_DELUGE), + LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(23, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(53, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_CUT), + LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_STOMP), + LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(19, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 7, MOVE_SLASH), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_GRAVITY), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(43, MOVE_POWER_GEM), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(67, MOVE_WRING_OUT), + LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(89, MOVE_HEART_SWAP), + LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(20, MOVE_COPYCAT), + LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(35, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(13, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_CHARM), + LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_TOXIC), + LEVEL_UP_MOVE(47, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(53, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(17, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(13, MOVE_STORED_POWER), + LEVEL_UP_MOVE(17, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_CALM_MIND), + LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(47, MOVE_TRICK), + LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(19, MOVE_SNARL), + LEVEL_UP_MOVE(22, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(26, MOVE_CHARGE), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets/gen_7.h similarity index 97% rename from src/data/pokemon/level_up_learnsets.h rename to src/data/pokemon/level_up_learnsets/gen_7.h index f1f367b44..dd561a27f 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets/gen_7.h @@ -9,7 +9,6 @@ static const struct LevelUpMove sNoneLevelUpLearnset[] = { #if P_FAMILY_BULBASAUR static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), LEVEL_UP_MOVE( 3, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP), @@ -240,9 +239,8 @@ static const struct LevelUpMove sWeedleLevelUpLearnset[] = { }; static const struct LevelUpMove sKakunaLevelUpLearnset[] = { - // LEVEL_UP_MOVE( 0, MOVE_HARDEN), - // LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_END }; @@ -1517,44 +1515,27 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 4, MOVE_HOWL), - LEVEL_UP_MOVE( 8, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(24, MOVE_FIRE_FANG), - LEVEL_UP_MOVE(28, MOVE_RETALIATE), - LEVEL_UP_MOVE(32, MOVE_CRUNCH), - LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(44, MOVE_ROAR), - LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(52, MOVE_REVERSAL), - LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), LEVEL_UP_END }; static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), - LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), - LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_CRUNCH), - LEVEL_UP_MOVE( 1, MOVE_REVERSAL), - LEVEL_UP_MOVE( 1, MOVE_RETALIATE), - LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 1, MOVE_AGILITY), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_ROAR), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 5, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(64, MOVE_RAGING_FURY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -2217,8 +2198,8 @@ static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { #if P_FAMILY_MAGNEMITE static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB), @@ -2243,8 +2224,8 @@ static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), @@ -2270,12 +2251,12 @@ static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), - LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), LEVEL_UP_MOVE( 1, MOVE_BARRIER), LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), @@ -2718,8 +2699,8 @@ static const struct LevelUpMove sSteelixLevelUpLearnset[] = { #if P_FAMILY_DROWZEE static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 5, MOVE_DISABLE), LEVEL_UP_MOVE( 9, MOVE_CONFUSION), LEVEL_UP_MOVE(13, MOVE_HEADBUTT), @@ -2857,45 +2838,27 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), - LEVEL_UP_MOVE(11, MOVE_ROLLOUT), - LEVEL_UP_MOVE(13, MOVE_SCREECH), - LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), - LEVEL_UP_MOVE(20, MOVE_SWIFT), - LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), - LEVEL_UP_MOVE(34, MOVE_DISCHARGE), - LEVEL_UP_MOVE(41, MOVE_EXPLOSION), - LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), LEVEL_UP_END }; static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CHLOROBLAST), - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), - LEVEL_UP_MOVE(11, MOVE_ROLLOUT), - LEVEL_UP_MOVE(13, MOVE_SCREECH), - LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), - LEVEL_UP_MOVE(20, MOVE_SWIFT), - LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), - LEVEL_UP_MOVE(34, MOVE_DISCHARGE), - LEVEL_UP_MOVE(41, MOVE_EXPLOSION), - LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -3325,10 +3288,10 @@ static const struct LevelUpMove sHappinyLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS static const struct LevelUpMove sChanseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 9, MOVE_REFRESH), LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), @@ -3348,10 +3311,10 @@ static const struct LevelUpMove sChanseyLevelUpLearnset[] = { #if P_GEN_2_CROSS_EVOS static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 9, MOVE_REFRESH), LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), @@ -3585,10 +3548,10 @@ static const struct LevelUpMove sStarmieLevelUpLearnset[] = { #if P_FAMILY_MR_MIME #if P_GEN_4_CROSS_EVOS static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TICKLE), LEVEL_UP_MOVE( 1, MOVE_BARRIER), - LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), LEVEL_UP_MOVE( 4, MOVE_COPYCAT), LEVEL_UP_MOVE( 8, MOVE_MEDITATE), LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), @@ -3730,9 +3693,9 @@ static const struct LevelUpMove sScytherLevelUpLearnset[] = { #if P_GEN_2_CROSS_EVOS static const struct LevelUpMove sScizorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FEINT), - LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 9, MOVE_PURSUIT), LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), @@ -3754,20 +3717,16 @@ static const struct LevelUpMove sScizorLevelUpLearnset[] = { #if P_GEN_8_CROSS_EVOS static const struct LevelUpMove sKleavorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_STONE_AXE), - LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(24, MOVE_SLASH), - LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(32, MOVE_AGILITY), - LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; #endif //P_GEN_8_CROSS_EVOS @@ -4901,24 +4860,16 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_INFERNAL_PARADE), - LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), - LEVEL_UP_MOVE( 1, MOVE_ERUPTION), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(31, MOVE_SWIFT), - LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), - LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(56, MOVE_INFERNO), - LEVEL_UP_MOVE(61, MOVE_ROLLOUT), - LEVEL_UP_MOVE(74, MOVE_OVERHEAT), + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -5197,9 +5148,9 @@ static const struct LevelUpMove sChinchouLevelUpLearnset[] = { }; static const struct LevelUpMove sLanturnLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_STOCKPILE), - LEVEL_UP_MOVE( 0, MOVE_SWALLOW), LEVEL_UP_MOVE( 0, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 0, MOVE_SWALLOW), + LEVEL_UP_MOVE( 0, MOVE_STOCKPILE), LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), LEVEL_UP_MOVE( 1, MOVE_SWALLOW), LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), @@ -5439,8 +5390,8 @@ static const struct LevelUpMove sMarillLevelUpLearnset[] = { static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), @@ -5510,8 +5461,8 @@ static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { #if P_FAMILY_HOPPIP static const struct LevelUpMove sHoppipLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 8, MOVE_TACKLE), @@ -5534,8 +5485,8 @@ static const struct LevelUpMove sHoppipLevelUpLearnset[] = { }; static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), @@ -5560,8 +5511,8 @@ static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { }; static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), @@ -5965,8 +5916,8 @@ static const struct LevelUpMove sPinecoLevelUpLearnset[] = { }; static const struct LevelUpMove sForretressLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_MIRROR_SHOT), LEVEL_UP_MOVE( 0, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 0, MOVE_MIRROR_SHOT), LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT), LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), @@ -6168,44 +6119,30 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 8, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), - LEVEL_UP_MOVE(16, MOVE_MINIMIZE), - LEVEL_UP_MOVE(20, MOVE_SPIKES), - LEVEL_UP_MOVE(24, MOVE_BRINE), - LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), - LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), - LEVEL_UP_MOVE(40, MOVE_STOCKPILE), - LEVEL_UP_MOVE(40, MOVE_SPIT_UP), - LEVEL_UP_MOVE(44, MOVE_TOXIC), - LEVEL_UP_MOVE(48, MOVE_CRUNCH), - LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), - LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), LEVEL_UP_END }; static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 8, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), - LEVEL_UP_MOVE(16, MOVE_MINIMIZE), - LEVEL_UP_MOVE(20, MOVE_SPIKES), - LEVEL_UP_MOVE(24, MOVE_BRINE), - LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), - LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), - LEVEL_UP_MOVE(40, MOVE_STOCKPILE), - LEVEL_UP_MOVE(40, MOVE_SPIT_UP), - LEVEL_UP_MOVE(44, MOVE_TOXIC), - LEVEL_UP_MOVE(48, MOVE_CRUNCH), - LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), - LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -6310,38 +6247,25 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE( 6, MOVE_TAUNT), - LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(24, MOVE_POISON_JAB), - LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(42, MOVE_SLASH), - LEVEL_UP_MOVE(48, MOVE_AGILITY), - LEVEL_UP_MOVE(54, MOVE_SCREECH), - LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DIRE_CLAW), - LEVEL_UP_MOVE( 1, MOVE_FLING), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 6, MOVE_TAUNT), - LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(24, MOVE_POISON_JAB), - LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(42, MOVE_SLASH), - LEVEL_UP_MOVE(48, MOVE_AGILITY), - LEVEL_UP_MOVE(54, MOVE_SCREECH), - LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -6390,24 +6314,14 @@ static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { #if P_GEN_8_CROSS_EVOS static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_HEADLONG_RUSH), - LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 1, MOVE_COVET), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(13, MOVE_PAYBACK), - LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(22, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), - LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(41, MOVE_REST), - LEVEL_UP_MOVE(41, MOVE_SNORE), - LEVEL_UP_MOVE(48, MOVE_HIGH_HORSEPOWER), - LEVEL_UP_MOVE(56, MOVE_THRASH), - LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), LEVEL_UP_END }; @@ -6690,11 +6604,11 @@ static const struct LevelUpMove sMantineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE( 1, MOVE_ROOST), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ROOST), LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), @@ -6844,21 +6758,14 @@ static const struct LevelUpMove sStantlerLevelUpLearnset[] = { #if P_GEN_8_CROSS_EVOS static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_PSYSHIELD_BASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 3, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(13, MOVE_STOMP), - LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(27, MOVE_CALM_MIND), - LEVEL_UP_MOVE(32, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(49, MOVE_IMPRISON), - LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(62, MOVE_MEGAHORN), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; #endif //P_GEN_8_CROSS_EVOS @@ -7955,9 +7862,9 @@ static const struct LevelUpMove sNincadaLevelUpLearnset[] = { }; static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 0, MOVE_SCREECH), LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 0, MOVE_SCREECH), + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), @@ -9317,9 +9224,9 @@ static const struct LevelUpMove sAnorithLevelUpLearnset[] = { }; static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), @@ -9934,8 +9841,8 @@ static const struct LevelUpMove sBeldumLevelUpLearnset[] = { }; static const struct LevelUpMove sMetangLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CONFUSION), LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), @@ -10182,8 +10089,6 @@ static const struct LevelUpMove sJirachiLevelUpLearnset[] = { static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), LEVEL_UP_MOVE(13, MOVE_TELEPORT), LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), @@ -10202,8 +10107,6 @@ static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), LEVEL_UP_MOVE(13, MOVE_TELEPORT), LEVEL_UP_MOVE(19, MOVE_TAUNT), @@ -10222,8 +10125,6 @@ static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), LEVEL_UP_MOVE(13, MOVE_TELEPORT), LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), @@ -12115,24 +12016,16 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CEASELESS_EDGE), - LEVEL_UP_MOVE( 1, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), - LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(34, MOVE_AQUA_JET), - LEVEL_UP_MOVE(39, MOVE_ENCORE), - LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(51, MOVE_RETALIATE), - LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -13061,29 +12954,20 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_VICTORY_DANCE), - LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_SOLAR_BLADE), - LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), - LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), - LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), - LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), - LEVEL_UP_MOVE( 1, MOVE_DEFOG), - LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_MEGA_KICK), - LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 5, MOVE_AXE_KICK), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -13091,8 +12975,8 @@ static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { #if P_FAMILY_BASCULIN static const struct LevelUpMove sBasculinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 3, MOVE_UPROAR), LEVEL_UP_MOVE( 5, MOVE_HEADBUTT), @@ -13114,46 +12998,26 @@ static const struct LevelUpMove sBasculinLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 3, MOVE_UPROAR), - LEVEL_UP_MOVE( 5, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 7, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), - LEVEL_UP_MOVE(11, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(17, MOVE_CRUNCH), - LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(23, MOVE_SOAK), - LEVEL_UP_MOVE(26, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(34, MOVE_FLAIL), - LEVEL_UP_MOVE(38, MOVE_UPROAR), - LEVEL_UP_MOVE(42, MOVE_THRASH), - LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), - LEVEL_UP_MOVE( 4, MOVE_TACKLE), - LEVEL_UP_MOVE( 8, MOVE_FLAIL), - LEVEL_UP_MOVE(12, MOVE_AQUA_JET), - LEVEL_UP_MOVE(16, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(24, MOVE_HEADBUTT), - LEVEL_UP_MOVE(28, MOVE_SOAK), - LEVEL_UP_MOVE(32, MOVE_CRUNCH), - LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(40, MOVE_UPROAR), - LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), - LEVEL_UP_MOVE(48, MOVE_THRASH), - LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -13733,40 +13597,26 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 4, MOVE_TORMENT), - LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(16, MOVE_CURSE), - LEVEL_UP_MOVE(20, MOVE_TAUNT), - LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(28, MOVE_SPITE), - LEVEL_UP_MOVE(32, MOVE_AGILITY), - LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(40, MOVE_BITTER_MALICE), - LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), LEVEL_UP_END }; static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_TORMENT), - LEVEL_UP_MOVE( 1, MOVE_U_TURN), - LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(16, MOVE_CURSE), - LEVEL_UP_MOVE(20, MOVE_TAUNT), - LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(28, MOVE_SPITE), - LEVEL_UP_MOVE(34, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(46, MOVE_BITTER_MALICE), - LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -13907,7 +13757,7 @@ static const struct LevelUpMove sDuosionLevelUpLearnset[] = { LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), LEVEL_UP_MOVE(19, MOVE_CHARM), LEVEL_UP_MOVE(24, MOVE_RECOVER), - LEVEL_UP_MOVE (25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT), LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT), @@ -15088,23 +14938,16 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ESPER_WING), - LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(18, MOVE_TAILWIND), - LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(64, MOVE_DEFOG), - LEVEL_UP_MOVE(72, MOVE_THRASH), - LEVEL_UP_MOVE(80, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -15442,8 +15285,8 @@ static const struct LevelUpMove sThundurusLevelUpLearnset[] = { #if P_FAMILY_RESHIRAM static const struct LevelUpMove sReshiramLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), LEVEL_UP_MOVE( 8, MOVE_IMPRISON), LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER), @@ -15464,8 +15307,8 @@ static const struct LevelUpMove sReshiramLevelUpLearnset[] = { #if P_FAMILY_ZEKROM static const struct LevelUpMove sZekromLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), LEVEL_UP_MOVE( 8, MOVE_IMPRISON), LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT), @@ -16097,7 +15940,6 @@ static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), LEVEL_UP_MOVE(46, MOVE_MOONBLAST), - LEVEL_UP_MOVE(50, MOVE_LIGHT_OF_RUIN), LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), LEVEL_UP_END @@ -16890,43 +16732,26 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SHELTER), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(15, MOVE_PROTECT), - LEVEL_UP_MOVE(20, MOVE_FLAIL), - LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(43, MOVE_CURSE), - LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), LEVEL_UP_END }; static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 1, MOVE_SHELTER), - LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE( 1, MOVE_FEINT), - LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_PROTECT), - LEVEL_UP_MOVE(20, MOVE_FLAIL), - LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(43, MOVE_CURSE), - LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -17003,7 +16828,6 @@ static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 6, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), @@ -17011,7 +16835,6 @@ static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(40, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), LEVEL_UP_END @@ -17025,19 +16848,16 @@ static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 6, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(11, MOVE_WORRY_SEED), LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(26, MOVE_BULLET_SEED), LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(40, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT), LEVEL_UP_MOVE(48, MOVE_SEED_BOMB), LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE), - LEVEL_UP_MOVE(63, MOVE_TRICK_OR_TREAT), LEVEL_UP_MOVE(70, MOVE_EXPLOSION), LEVEL_UP_END }; @@ -17094,25 +16914,16 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 9, MOVE_CURSE), - LEVEL_UP_MOVE(12, MOVE_ICY_WIND), - LEVEL_UP_MOVE(15, MOVE_PROTECT), - LEVEL_UP_MOVE(18, MOVE_AVALANCHE), - LEVEL_UP_MOVE(21, MOVE_BITE), - LEVEL_UP_MOVE(24, MOVE_ICE_FANG), - LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(30, MOVE_RECOVER), - LEVEL_UP_MOVE(33, MOVE_CRUNCH), - LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_BLIZZARD), - LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(61, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -17287,7 +17098,7 @@ static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { }; static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), LEVEL_UP_MOVE( 1, MOVE_TRICK), LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), @@ -17404,22 +17215,18 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { #if P_HISUIAN_FORMS static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_TRIPLE_ARROWS), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_U_TURN), - LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), - LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), - LEVEL_UP_MOVE( 9, MOVE_PECK), - LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(25, MOVE_PLUCK), - LEVEL_UP_MOVE(30, MOVE_BULK_UP), - LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE), - LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), LEVEL_UP_END }; #endif //P_HISUIAN_FORMS @@ -17879,12 +17686,15 @@ static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), LEVEL_UP_MOVE( 1, MOVE_REVERSAL), LEVEL_UP_MOVE( 1, MOVE_TAUNT), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), LEVEL_UP_MOVE(12, MOVE_HOWL), LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), @@ -17901,12 +17711,15 @@ static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), LEVEL_UP_MOVE( 1, MOVE_COUNTER), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_BITE), LEVEL_UP_MOVE(12, MOVE_HOWL), LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), @@ -19254,33 +19067,33 @@ static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { #if P_FAMILY_MELTAN static const struct LevelUpMove sMeltanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 18, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 27, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 36, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 45, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), LEVEL_UP_END }; static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 18, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 27, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 36, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 45, MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 54, MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 64, MOVE_PROTECT), - LEVEL_UP_MOVE( 72, MOVE_DOUBLE_IRON_BASH), - LEVEL_UP_MOVE( 81, MOVE_SUPERPOWER), - LEVEL_UP_MOVE( 90, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), LEVEL_UP_END }; #endif //P_FAMILY_MELTAN @@ -19538,9 +19351,9 @@ static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { }; static const struct LevelUpMove sDottlerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_REFLECT), - LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), LEVEL_UP_MOVE( 1, MOVE_REFLECT), LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -19863,6 +19676,26 @@ static const struct LevelUpMove sDipplinLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), LEVEL_UP_END }; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -20579,6 +20412,26 @@ static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), LEVEL_UP_END }; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -20963,23 +20816,15 @@ static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { #if P_FAMILY_ENAMORUS static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 5, MOVE_TORMENT), - LEVEL_UP_MOVE(10, MOVE_FLATTER), - LEVEL_UP_MOVE(15, MOVE_TWISTER), - LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(30, MOVE_IMPRISON), - LEVEL_UP_MOVE(35, MOVE_MYSTICAL_FIRE), - LEVEL_UP_MOVE(40, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(50, MOVE_UPROAR), - LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(60, MOVE_HEALING_WISH), - LEVEL_UP_MOVE(65, MOVE_MOONBLAST), - LEVEL_UP_MOVE(70, MOVE_OUTRAGE), - LEVEL_UP_MOVE(75, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), LEVEL_UP_END }; #endif //P_FAMILY_ENAMORUS @@ -23155,3 +23000,133 @@ static const struct LevelUpMove sOgerponLevelUpLearnset[] = { LEVEL_UP_END }; #endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_8.h b/src/data/pokemon/level_up_learnsets/gen_8.h new file mode 100644 index 000000000..e774dd088 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_8.h @@ -0,0 +1,22703 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(18, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(36, MOVE_INFERNO), + LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(19, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(48, MOVE_INFERNO), + LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(19, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(54, MOVE_INFERNO), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(36, MOVE_SKULL_BASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_SKULL_BASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(35, MOVE_POISON_JAB), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(44, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_TWISTER), + LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_TAILWIND), + LEVEL_UP_MOVE(45, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(53, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(68, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(18, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_ROOST), + LEVEL_UP_MOVE(36, MOVE_DRILL_PECK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRILL_RUN), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(18, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(45, MOVE_DRILL_RUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(38, MOVE_BELCH), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_BELCH), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_MOVE(56, MOVE_COIL), + LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(16, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_FEINT), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(26, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(51, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_SANDSTORM), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_MIST), + LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_HAIL), + LEVEL_UP_MOVE( 1, MOVE_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_BITE), + LEVEL_UP_MOVE(43, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(57, MOVE_FLATTER), + LEVEL_UP_MOVE(64, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(43, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(57, MOVE_FLATTER), + LEVEL_UP_MOVE(64, MOVE_POISON_JAB), + LEVEL_UP_MOVE(71, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_ENCORE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 8, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(20, MOVE_METRONOME), + LEVEL_UP_MOVE(24, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(28, MOVE_GRAVITY), + LEVEL_UP_MOVE(32, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(36, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(40, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(48, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_METEOR_MASH), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(44, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(48, MOVE_INFERNO), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_MIST), + LEVEL_UP_MOVE(44, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(48, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_DISABLE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_STOCKPILE), + LEVEL_UP_MOVE(12, MOVE_SWALLOW), + LEVEL_UP_MOVE(12, MOVE_SPIT_UP), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_MIMIC), + LEVEL_UP_MOVE(32, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_HAZE), + LEVEL_UP_MOVE(40, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(34, MOVE_BITE), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(48, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(34, MOVE_BITE), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(48, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_MOONBLAST), + LEVEL_UP_MOVE(32, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(36, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_MOONBLAST), + LEVEL_UP_MOVE(38, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_ABSORB), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(54, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_ABSORB), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(66, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(37, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_POISON_FANG), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_SANDSTORM), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(28, MOVE_SANDSTORM), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SOAK), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(34, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(39, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SOAK), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(15, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(47, MOVE_OUTRAGE), + LEVEL_UP_MOVE(50, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(15, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_ROAR), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_BURN_UP), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 6, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIND_READER), + LEVEL_UP_MOVE( 1, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BOUNCE), + LEVEL_UP_MOVE( 1, MOVE_BOUNCE), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 5, MOVE_PSYBEAM), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 5, MOVE_PSYBEAM), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(29, MOVE_STRENGTH), + LEVEL_UP_MOVE(32, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(36, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(44, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(31, MOVE_STRENGTH), + LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(42, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(31, MOVE_STRENGTH), + LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(42, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(39, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(44, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(47, MOVE_POISON_JAB), + LEVEL_UP_MOVE(54, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_SURF), + LEVEL_UP_MOVE(52, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_INFERNO), + LEVEL_UP_MOVE(50, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_INFERNO), + LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_LOCK_ON), + LEVEL_UP_MOVE(52, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_LOCK_ON), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_LOCK_ON), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_CUT), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_AGILITY), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_UPROAR), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_LUNGE), + LEVEL_UP_MOVE(43, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_UPROAR), + LEVEL_UP_MOVE(34, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LUNGE), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewgongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DIVE), + LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(65, MOVE_HAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(52, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(52, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_MIND_READER), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + 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( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_MIND_READER), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(57, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(60, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(58, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_REFLECT), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(50, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_RETALIATE), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(29, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_BONEMERANG), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_RETALIATE), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(31, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(48, MOVE_BONEMERANG), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(31, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(36, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(48, MOVE_BONEMERANG), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE( 1, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(24, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(28, MOVE_MIND_READER), + LEVEL_UP_MOVE(32, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 8, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(24, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WRAP), + LEVEL_UP_MOVE(24, MOVE_DISABLE), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_SLAM), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WRAP), + LEVEL_UP_MOVE(24, MOVE_DISABLE), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_SLAM), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_HAZE), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_HAZE), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MEGAHORN), + LEVEL_UP_MOVE(68, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MEGAHORN), + LEVEL_UP_MOVE(68, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(75, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_TICKLE), + LEVEL_UP_MOVE(48, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(52, MOVE_INGRAIN), + LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_TICKLE), + LEVEL_UP_MOVE(48, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(52, MOVE_INGRAIN), + LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(44, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_OUTRAGE), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(35, MOVE_WATERFALL), + LEVEL_UP_MOVE(40, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_MEGAHORN), + LEVEL_UP_MOVE(50, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_WATERFALL), + LEVEL_UP_MOVE(44, MOVE_SOAK), + LEVEL_UP_MOVE(51, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_HORN_DRILL), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_SURF), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 8, MOVE_ENCORE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_RECYCLE), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_MIMIC), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_RECYCLE), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_MIMIC), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_PSYCHIC), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(44, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(52, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STORM_THROW), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_SUBMISSION), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(52, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_ICE_FANG), + LEVEL_UP_MOVE(12, MOVE_BRINE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_WATERFALL), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_HURRICANE), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_COPYCAT), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_CHARM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_THUNDER), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(45, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(35, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(30, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(35, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_HAIL), + LEVEL_UP_MOVE(40, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 5, MOVE_RECYCLE), + LEVEL_UP_MOVE(10, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(50, MOVE_SURF), + LEVEL_UP_MOVE(55, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(56, MOVE_SURF), + LEVEL_UP_MOVE(63, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(50, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(55, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(56, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_AGILITY), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_RECYCLE), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_STOCKPILE), + LEVEL_UP_MOVE(20, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(32, MOVE_FLING), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_METRONOME), + LEVEL_UP_MOVE(44, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE(12, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(20, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(44, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_HAIL), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(50, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_BURN_UP), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(40, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(41, MOVE_OUTRAGE), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(16, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(64, MOVE_MIST), + LEVEL_UP_MOVE(72, MOVE_PSYSTRIKE), + LEVEL_UP_MOVE(80, MOVE_RECOVER), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(10, MOVE_AMNESIA), + LEVEL_UP_MOVE(20, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_METRONOME), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_TRANSFORM), + LEVEL_UP_MOVE(90, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(100, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_MOVE(49, MOVE_ROLLOUT), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_BURN_UP), + LEVEL_UP_MOVE(64, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(53, MOVE_INFERNO), + LEVEL_UP_MOVE(57, MOVE_ROLLOUT), + LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(68, MOVE_BURN_UP), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(69, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_BURN_UP), + LEVEL_UP_MOVE(82, MOVE_ERUPTION), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(22, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_LOW_KICK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_LOW_KICK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LOW_KICK), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(71, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_COIL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(21, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_MOONBLAST), + LEVEL_UP_MOVE(36, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_ROOST), + LEVEL_UP_MOVE(43, MOVE_MOONBLAST), + LEVEL_UP_MOVE(48, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(53, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(12, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(12, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(20, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(50, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(54, MOVE_TOXIC_THREAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(58, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(63, MOVE_TOXIC_THREAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 4, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWALLOW), + LEVEL_UP_MOVE( 0, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 0, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_CHARGE), + LEVEL_UP_MOVE(30, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_METRONOME), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_METRONOME), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_WISH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_STORED_POWER), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(26, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(30, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_WISH), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(34, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(34, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_WISH), + LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_POWER_GEM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(47, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(51, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(62, MOVE_THUNDER), + LEVEL_UP_MOVE(65, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_MOVE(19, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(21, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_BLOCK), + LEVEL_UP_MOVE(16, MOVE_MIMIC), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_BLOCK), + LEVEL_UP_MOVE(16, MOVE_MIMIC), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(19, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(34, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(37, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_ACROBATICS), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_U_TURN), + LEVEL_UP_MOVE(48, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(52, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(34, MOVE_ACROBATICS), + LEVEL_UP_MOVE(39, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(59, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(64, MOVE_BOUNCE), + LEVEL_UP_MOVE(69, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(34, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_TOXIC), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_GUST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(61, MOVE_TORMENT), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_MOVE(75, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_SPITE), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(23, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_POWER_GEM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 0, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 0, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_EXPLOSION), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_REFLECT), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(32, MOVE_PAYBACK), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(48, MOVE_COIL), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(43, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_ROAR), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_REVENGE), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_STOCKPILE), + LEVEL_UP_MOVE(44, MOVE_SPIT_UP), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(52, MOVE_TOXIC), + LEVEL_UP_MOVE(56, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(60, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(66, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_BUG_BITE), + LEVEL_UP_MOVE(35, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(40, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(45, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(50, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(55, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_COUNTER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(45, MOVE_THRASH), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_BEAT_UP), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_SLASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_FLING), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(66, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(57, MOVE_FLING), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_PAYBACK), + LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_SNORE), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(58, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_AQUA_RING), + LEVEL_UP_MOVE(15, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(35, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 4, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_LOCK_ON), + LEVEL_UP_MOVE(28, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(40, MOVE_SOAK), + LEVEL_UP_MOVE(44, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE(25, MOVE_DRILL_PECK), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(20, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_STEEL_WING), + LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_SPIKES), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_PAYBACK), + LEVEL_UP_MOVE(37, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(26, MOVE_BEAT_UP), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(55, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SPARK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(36, MOVE_HOWL), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_REFLECT), + LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_THUNDER), + LEVEL_UP_MOVE(78, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(66, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_ICE_FANG), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_PAYBACK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(39, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_AEROBLAST), + LEVEL_UP_MOVE(63, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(63, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(99, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(20, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(50, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(60, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(80, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(90, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(18, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(39, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(55, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(63, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_BOUNCE), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_REVERSAL), + LEVEL_UP_MOVE(39, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BOUNCE), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(40, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(45, MOVE_BULK_UP), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BOUNCE), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(49, MOVE_BULK_UP), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(39, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(19, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_YAWN), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_FLING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_ABSORB), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 3, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(21, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(24, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(27, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(57, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(45, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(27, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_MIST), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_MIST), + LEVEL_UP_MOVE(48, MOVE_ROOST), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 3, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(36, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(56, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_CALM_MIND), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(12, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(23, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(56, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(56, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_SOAK), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_HAZE), + LEVEL_UP_MOVE(30, MOVE_AQUA_JET), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_STICKY_WEB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_SOAK), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(26, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(32, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_SPORE), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(39, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_REST), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_UPROAR), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_REST), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(27, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(47, MOVE_FLING), + LEVEL_UP_MOVE(53, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(21, MOVE_ABSORB), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_MIND_READER), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCREECH), + LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_ABSORB), + LEVEL_UP_MOVE(29, MOVE_BUG_BITE), + LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(50, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(64, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(23, MOVE_ABSORB), + LEVEL_UP_MOVE(29, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(50, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_SPITE), + LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(10, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(35, MOVE_UPROAR), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(72, MOVE_BOOMBURST), + LEVEL_UP_MOVE(81, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(38, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(42, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(50, MOVE_BODY_PRESS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_PAYBACK), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(34, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_QUASH), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_BATON_PASS), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_STOCKPILE), + LEVEL_UP_MOVE(16, MOVE_SWALLOW), + LEVEL_UP_MOVE(16, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(44, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 8, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(44, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(52, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(76, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(56, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(64, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(72, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(88, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(54, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_WISH), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_COVET), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(30, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(55, MOVE_INGRAIN), + LEVEL_UP_MOVE(60, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_STOCKPILE), + LEVEL_UP_MOVE(30, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_SWALLOW), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(49, MOVE_BELCH), + LEVEL_UP_MOVE(54, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_YAWN), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_ERUPTION), + LEVEL_UP_MOVE(59, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_CURSE), + LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(64, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_GROWL), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(40, MOVE_PAYBACK), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_GROWL), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_DIG), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_UPROAR), + LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(68, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_POISON_JAB), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(50, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_POISON_JAB), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_FACADE), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_GLARE), + LEVEL_UP_MOVE(21, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(31, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(35, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(35, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_REST), + LEVEL_UP_MOVE( 6, MOVE_SNORE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_SNORE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(58, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(64, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_IMPRISON), + LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(36, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(39, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_IMPRISON), + LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(38, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(38, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(43, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_INGRAIN), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AMNESIA), + LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_STOCKPILE), + LEVEL_UP_MOVE(41, MOVE_SPIT_UP), + LEVEL_UP_MOVE(41, MOVE_SWALLOW), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_INGRAIN), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AMNESIA), + LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_STOCKPILE), + LEVEL_UP_MOVE(43, MOVE_SPIT_UP), + LEVEL_UP_MOVE(43, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(48, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_TWISTER), + LEVEL_UP_MOVE(12, MOVE_AQUA_RING), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_COIL), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(35, MOVE_BLIZZARD), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_FEINT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_TRICK), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(58, MOVE_TRICK), + LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(50, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(61, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(27, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_BITE), + LEVEL_UP_MOVE(40, MOVE_ICE_FANG), + LEVEL_UP_MOVE(45, MOVE_HAIL), + LEVEL_UP_MOVE(50, MOVE_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_BITE), + LEVEL_UP_MOVE(40, MOVE_ICE_FANG), + LEVEL_UP_MOVE(47, MOVE_HAIL), + LEVEL_UP_MOVE(54, MOVE_HEADBUTT), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(68, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_HAIL), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(54, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(61, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(68, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(33, MOVE_ENCORE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_HAIL), + LEVEL_UP_MOVE(52, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SURF), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_HAIL), + LEVEL_UP_MOVE(64, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_SURF), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(72, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 5, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 5, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_AMNESIA), + LEVEL_UP_MOVE(19, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(13, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ATTRACT), + LEVEL_UP_MOVE(22, MOVE_BRINE), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(40, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(53, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(67, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLY), + LEVEL_UP_MOVE( 1, MOVE_FLY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(55, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(64, MOVE_OUTRAGE), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(18, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(16, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(52, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(62, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(72, MOVE_AGILITY), + LEVEL_UP_MOVE(82, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(24, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_TAILWIND), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(55, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(70, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_TAILWIND), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(63, MOVE_ORIGIN_PULSE), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(18, MOVE_BULK_UP), + LEVEL_UP_MOVE(27, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_FISSURE), + LEVEL_UP_MOVE(54, MOVE_REST), + LEVEL_UP_MOVE(63, MOVE_PRECIPICE_BLADES), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(90, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_ASCENT), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 9, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(27, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_REST), + LEVEL_UP_MOVE(63, MOVE_FLY), + LEVEL_UP_MOVE(72, MOVE_HURRICANE), + LEVEL_UP_MOVE(81, MOVE_OUTRAGE), + LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_GRAVITY), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(63, MOVE_REST), + LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(77, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(84, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(91, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(98, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_COUNTER), + LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(52, MOVE_ACROBATICS), + LEVEL_UP_MOVE(58, MOVE_CALM_MIND), + LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CHARM), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CHARM), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(49, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(18, MOVE_TAUNT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_MOVE(53, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(58, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(14, MOVE_ABSORB), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(68, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_SWAGGER), + LEVEL_UP_MOVE(80, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(51, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(51, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_METAL_BURST), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_ROOST), + LEVEL_UP_MOVE(38, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(40, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(19, MOVE_NUZZLE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(35, MOVE_WATERFALL), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_WATERFALL), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(62, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(35, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(53, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_GUST), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(24, MOVE_STOCKPILE), + LEVEL_UP_MOVE(24, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_SPIT_UP), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(36, MOVE_BATON_PASS), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(24, MOVE_STOCKPILE), + LEVEL_UP_MOVE(24, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_SPIT_UP), + LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_TAILWIND), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_BATON_PASS), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_FLATTER), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_BATON_PASS), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_FLATTER), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_ATTRACT), + LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(50, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_ATTRACT), + LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 3, MOVE_FEINT), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_BELCH), + LEVEL_UP_MOVE(42, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_CHATTER), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_ROUND), + LEVEL_UP_MOVE(33, MOVE_MIMIC), + LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(50, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(15, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_MEMENTO), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(55, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(50, MOVE_DIG), + LEVEL_UP_MOVE(58, MOVE_SANDSTORM), + LEVEL_UP_MOVE(66, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(74, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(52, MOVE_DIG), + LEVEL_UP_MOVE(62, MOVE_SANDSTORM), + LEVEL_UP_MOVE(72, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(82, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_COUNTER), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(48, MOVE_COPYCAT), + LEVEL_UP_MOVE(52, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FORCE_PALM), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_COUNTER), + LEVEL_UP_MOVE(16, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(20, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(24, MOVE_CALM_MIND), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_SANDSTORM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_MOVE(52, MOVE_SLACK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_SANDSTORM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_MOVE(62, MOVE_SLACK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 6, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 9, MOVE_POISON_FANG), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 9, MOVE_POISON_FANG), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(54, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_FLATTER), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(48, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_FLATTER), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(37, MOVE_STOCKPILE), + LEVEL_UP_MOVE(37, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_TAILWIND), + LEVEL_UP_MOVE(54, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SOAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(43, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(35, MOVE_HEX), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_TRICK), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_YAWN), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_FLAIL), + LEVEL_UP_MOVE(77, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_COPYCAT), + LEVEL_UP_MOVE(77, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_UPROAR), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(77, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_ROAR_OF_TIME), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(56, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(64, MOVE_POWER_GEM), + LEVEL_UP_MOVE(72, MOVE_METAL_BURST), + LEVEL_UP_MOVE(80, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(88, MOVE_IRON_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_SPACIAL_REND), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(56, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(64, MOVE_POWER_GEM), + LEVEL_UP_MOVE(72, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(80, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(88, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(66, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(72, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 6, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_REVENGE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(36, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(42, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(78, MOVE_CRUSH_GRIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(49, MOVE_SHADOW_FORCE), + LEVEL_UP_MOVE(56, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(63, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(77, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(84, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(66, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_LUNAR_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(68, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_V_CREATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(14, MOVE_INCINERATE), + LEVEL_UP_MOVE(21, MOVE_STORED_POWER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_ENDURE), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(49, MOVE_INFERNO), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_MOVE(63, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(84, MOVE_OVERHEAT), + LEVEL_UP_MOVE(91, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(26, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_REVENGE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(37, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RETALIATE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_REVENGE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_ENCORE), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_RETALIATE), + LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_WORK_UP), + LEVEL_UP_MOVE(31, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(33, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(38, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_WORK_UP), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(17, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_REVERSAL), + LEVEL_UP_MOVE(40, MOVE_ROAR), + LEVEL_UP_MOVE(44, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(48, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_ROAR), + LEVEL_UP_MOVE(60, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(54, MOVE_REVERSAL), + LEVEL_UP_MOVE(62, MOVE_ROAR), + LEVEL_UP_MOVE(70, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_TORMENT), + LEVEL_UP_MOVE(23, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(52, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(20, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_CALM_MIND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(44, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(34, MOVE_DETECT), + LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(50, MOVE_ROOST), + LEVEL_UP_MOVE(58, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_ION_DELUGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_IMPRISON), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_IMPRISON), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SANDSTORM), + LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SANDSTORM), + LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DIG), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_GROWL), + LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(60, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(62, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(15, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_STORM_THROW), + LEVEL_UP_MOVE(35, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_ENDURE), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(45, MOVE_ENDURE), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(58, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 3, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(21, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(27, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_UPROAR), + LEVEL_UP_MOVE( 5, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_CRUNCH), + LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_INCINERATE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_INCINERATE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(32, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(60, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(56, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_PAYBACK), + LEVEL_UP_MOVE( 8, MOVE_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FACADE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FACADE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(54, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(60, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_GRAVITY), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_REFLECT), + LEVEL_UP_MOVE(55, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(60, MOVE_SKILL_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_GRUDGE), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_GRUDGE), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 3, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(39, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(21, MOVE_STOCKPILE), + LEVEL_UP_MOVE(21, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(33, MOVE_BELCH), + LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(21, MOVE_STOCKPILE), + LEVEL_UP_MOVE(21, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(33, MOVE_BELCH), + LEVEL_UP_MOVE(39, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(43, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_TORMENT), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(34, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_IMPRISON), + LEVEL_UP_MOVE(46, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_SING), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_TICKLE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_TICKLE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_FLATTER), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(35, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_FLATTER), + LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(35, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(64, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_RECOVER), + LEVEL_UP_MOVE( 8, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(58, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(64, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(44, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_CHARGE), + LEVEL_UP_MOVE(25, MOVE_ACROBATICS), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_REVERSAL), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(52, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(42, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(53, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(61, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 4, MOVE_ELECTROWEB), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ELECTROWEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(56, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(44, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(48, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(64, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_COIL), + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_CALM_MIND), + LEVEL_UP_MOVE(54, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(68, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_INFERNO), + LEVEL_UP_MOVE(44, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(52, MOVE_OVERHEAT), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_INFERNO), + LEVEL_UP_MOVE(46, MOVE_IMPRISON), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(58, MOVE_OVERHEAT), + LEVEL_UP_MOVE(64, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_OVERHEAT), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_OUTRAGE), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(53, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(15, MOVE_BRINE), + LEVEL_UP_MOVE(18, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_HAIL), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_BLIZZARD), + LEVEL_UP_MOVE(42, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(15, MOVE_BRINE), + LEVEL_UP_MOVE(18, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(30, MOVE_HAIL), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(20, MOVE_HAZE), + LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_REFLECT), + LEVEL_UP_MOVE(44, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(52, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(52, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_CHARGE), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(10, MOVE_REVERSAL), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(25, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(51, MOVE_BOUNCE), + LEVEL_UP_MOVE(55, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(25, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_CALM_MIND), + LEVEL_UP_MOVE(66, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(44, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(48, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(52, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(64, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(65, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_MEGAHORN), + LEVEL_UP_MOVE(55, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(55, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(60, MOVE_DEFOG), + LEVEL_UP_MOVE(66, MOVE_THRASH), + LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_THRASH), + LEVEL_UP_MOVE(80, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(48, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_DEFOG), + LEVEL_UP_MOVE(66, MOVE_ATTRACT), + LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BONE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_BONE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(48, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(57, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_ATTRACT), + LEVEL_UP_MOVE(80, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STOCKPILE), + LEVEL_UP_MOVE(20, MOVE_SWALLOW), + LEVEL_UP_MOVE(20, MOVE_SPIT_UP), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BIND), + LEVEL_UP_MOVE(35, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(55, MOVE_INFERNO), + LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_BEAT_UP), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(52, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(52, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(68, MOVE_OUTRAGE), + LEVEL_UP_MOVE(76, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_BUG_BITE), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(54, MOVE_AMNESIA), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_BUG_BITE), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(54, MOVE_AMNESIA), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_RAGE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_SWAGGER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(65, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_SWAGGER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(65, MOVE_THUNDER), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(64, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(72, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(88, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(64, MOVE_THUNDER), + LEVEL_UP_MOVE(72, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(88, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_BLOCK), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_GLACIATE), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_ICE_BURN), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SECRET_SWORD), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(63, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(77, MOVE_LOCK_ON), + LEVEL_UP_MOVE(84, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE(91, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(39, MOVE_BULK_UP), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE( 1, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(39, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(44, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(48, MOVE_BULK_UP), + LEVEL_UP_MOVE(54, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(56, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(59, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(62, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(68, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(74, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(80, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_HAZE), + LEVEL_UP_MOVE(77, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_DIG), + LEVEL_UP_MOVE(27, MOVE_BOUNCE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_SUPER_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_STEEL_WING), + LEVEL_UP_MOVE(45, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_STEEL_WING), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_FLY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_STEEL_WING), + LEVEL_UP_MOVE(65, MOVE_ROOST), + LEVEL_UP_MOVE(74, MOVE_FLY), + LEVEL_UP_MOVE(83, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_MOVE(55, MOVE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(50, MOVE_MILK_DRINK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(44, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_CHARM), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_REFLECT), + LEVEL_UP_MOVE(39, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(44, MOVE_IMPRISON), + LEVEL_UP_MOVE(49, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_STORED_POWER), + LEVEL_UP_MOVE(15, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_REFLECT), + LEVEL_UP_MOVE(39, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(44, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(38, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(18, MOVE_ATTRACT), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(18, MOVE_ATTRACT), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(42, MOVE_STICKY_WEB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 6, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(31, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(36, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(33, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(42, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(42, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(52, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(55, MOVE_CRABHAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(63, MOVE_CRABHAMMER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_POUND), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(28, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(40, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_ROAR), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_HAIL), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(48, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_ENCORE), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_SUBMISSION), + LEVEL_UP_MOVE(28, MOVE_BOUNCE), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(30, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(60, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(45, MOVE_POWER_GEM), + LEVEL_UP_MOVE(50, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(55, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(67, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_TORMENT), + LEVEL_UP_MOVE(16, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(28, MOVE_RECYCLE), + LEVEL_UP_MOVE(32, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_GROWTH), + LEVEL_UP_MOVE(28, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_INGRAIN), + LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_GROWTH), + LEVEL_UP_MOVE(28, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_INGRAIN), + LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_TRICK), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_TRICK), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_BLIZZARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_SKULL_BASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GUST), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(49, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(15, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(35, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(40, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_INGRAIN), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_GEOMANCY), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(85, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 5, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_SNARL), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_TAILWIND), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(60, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(65, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_HURRICANE), + LEVEL_UP_MOVE(75, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(85, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THOUSAND_ARROWS), + LEVEL_UP_MOVE( 1, MOVE_THOUSAND_WAVES), + LEVEL_UP_MOVE( 1, MOVE_CORE_ENFORCER), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(56, MOVE_GLARE), + LEVEL_UP_MOVE(64, MOVE_SANDSTORM), + LEVEL_UP_MOVE(72, MOVE_COIL), + LEVEL_UP_MOVE(80, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(88, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(14, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(63, MOVE_POWER_GEM), + LEVEL_UP_MOVE(70, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(77, MOVE_MOONBLAST), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_DIAMOND_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(68, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_INCINERATE), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(48, MOVE_SCALD), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(60, MOVE_MIST), + LEVEL_UP_MOVE(60, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(72, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE(78, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(84, MOVE_OVERHEAT), + LEVEL_UP_MOVE(90, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(27, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_THRASH), + LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_ENCORE), + LEVEL_UP_MOVE(27, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_MOONBLAST), + LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_ENCORE), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_MOONBLAST), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(40, MOVE_YAWN), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PURSUIT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(47, MOVE_YAWN), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_DIG), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(57, MOVE_AGILITY), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(42, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(54, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(40, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(48, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(64, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_BEAT_UP), + LEVEL_UP_MOVE(12, MOVE_BRINE), + LEVEL_UP_MOVE(16, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(24, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(40, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(52, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 4, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(36, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(44, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(62, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_INGRAIN), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(63, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_INGRAIN), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(25, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(27, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(38, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(44, MOVE_SPORE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(56, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_TOXIC), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRE_LASH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_LASH), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(58, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(65, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(46, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(46, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(58, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(12, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(18, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(27, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(30, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(39, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(42, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 5, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(10, MOVE_CALM_MIND), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(20, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_QUASH), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_INSTRUCT), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLING), + LEVEL_UP_MOVE(35, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 4, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(55, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(47, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(61, MOVE_SHORE_UP), + LEVEL_UP_MOVE(68, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_PURIFY), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_SOAK), + LEVEL_UP_MOVE(55, MOVE_TOXIC), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 5, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(10, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(35, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(40, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(60, MOVE_SPIKY_SHIELD), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 6, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_MIMIC), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(48, MOVE_CHARM), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_GLARE), + LEVEL_UP_MOVE(20, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_GROWTH), + LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(24, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(60, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(64, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(44, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(56, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(52, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(68, MOVE_CLANGOROUS_SOUL), + LEVEL_UP_MOVE(76, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(15, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(75, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_FLATTER), + LEVEL_UP_MOVE(30, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(35, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_TICKLE), + LEVEL_UP_MOVE(70, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(65, MOVE_MEGAHORN), + LEVEL_UP_MOVE(70, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(75, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(10, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_BRINE), + LEVEL_UP_MOVE(30, MOVE_DEFOG), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(45, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_SOAK), + LEVEL_UP_MOVE(75, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(14, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(21, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_METAL_BURST), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(70, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(49, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(70, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(84, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE(10, MOVE_TICKLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(25, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(25, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(50, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(65, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(70, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(15, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(40, MOVE_LUNGE), + LEVEL_UP_MOVE(45, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(35, MOVE_STOMP), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_MOVE(55, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(65, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(70, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_CHARGE), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(40, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(55, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(65, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(30, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(70, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_CUT), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(50, MOVE_DEFOG), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 5, MOVE_SWALLOW), + LEVEL_UP_MOVE( 5, MOVE_STOCKPILE), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_BELCH), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(16, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_STORED_POWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_POWER_GEM), + LEVEL_UP_MOVE(72, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(80, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(88, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_GEAR_UP), + LEVEL_UP_MOVE(30, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(42, MOVE_MIND_READER), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(54, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(60, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(66, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(72, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(78, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(90, MOVE_FLEUR_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 9, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(18, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(27, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(63, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(72, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(81, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(90, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(99, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(63, MOVE_TOXIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(63, MOVE_TOXIC), + LEVEL_UP_MOVE(70, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(35, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(60, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(65, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(40, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_MOVE(55, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(60, MOVE_TRICK), + LEVEL_UP_MOVE(65, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(56, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(80, MOVE_AGILITY), + LEVEL_UP_MOVE(88, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(96, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_HAIL), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/level_up_learnsets/gen_9.h b/src/data/pokemon/level_up_learnsets/gen_9.h new file mode 100644 index 000000000..21b0a9611 --- /dev/null +++ b/src/data/pokemon/level_up_learnsets/gen_9.h @@ -0,0 +1,22476 @@ +#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} +#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} + +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR +static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(18, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(17, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(36, MOVE_INFERNO), + LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(19, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_INFERNO), + LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(19, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(46, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(54, MOVE_INFERNO), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(36, MOVE_SKULL_BASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_SKULL_BASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const struct LevelUpMove sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(23, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(35, MOVE_POISON_JAB), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(44, MOVE_FELL_STINGER), + LEVEL_UP_END +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_TWISTER), + LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_TAILWIND), + LEVEL_UP_MOVE(45, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(53, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(42, MOVE_ROOST), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(17, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(22, MOVE_TWISTER), + LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(68, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const struct LevelUpMove sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const struct LevelUpMove sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(18, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_ROOST), + LEVEL_UP_MOVE(36, MOVE_DRILL_PECK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRILL_RUN), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(18, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(41, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(45, MOVE_DRILL_RUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const struct LevelUpMove sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_STOCKPILE), + LEVEL_UP_MOVE(25, MOVE_SWALLOW), + LEVEL_UP_MOVE(25, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(38, MOVE_BELCH), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_STOCKPILE), + LEVEL_UP_MOVE(27, MOVE_SWALLOW), + LEVEL_UP_MOVE(27, MOVE_SPIT_UP), + LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_BELCH), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_MOVE(56, MOVE_COIL), + LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(16, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_FEINT), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_IRON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 5, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_IRON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(26, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(51, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_SANDSTORM), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_MIST), + LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(36, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_HAIL), + LEVEL_UP_MOVE( 1, MOVE_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN +static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_BITE), + LEVEL_UP_MOVE(43, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(57, MOVE_FLATTER), + LEVEL_UP_MOVE(64, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_FLATTER), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(43, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(57, MOVE_FLATTER), + LEVEL_UP_MOVE(64, MOVE_POISON_JAB), + LEVEL_UP_MOVE(71, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_ENCORE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 8, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(20, MOVE_METRONOME), + LEVEL_UP_MOVE(24, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(28, MOVE_GRAVITY), + LEVEL_UP_MOVE(32, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(36, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(40, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(48, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_METEOR_MASH), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const struct LevelUpMove sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(44, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(48, MOVE_INFERNO), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_MIST), + LEVEL_UP_MOVE(44, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(48, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_DISABLE), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_STOCKPILE), + LEVEL_UP_MOVE(12, MOVE_SPIT_UP), + LEVEL_UP_MOVE(12, MOVE_SWALLOW), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_MIMIC), + LEVEL_UP_MOVE(32, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const struct LevelUpMove sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_HAZE), + LEVEL_UP_MOVE(40, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(34, MOVE_BITE), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(48, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(34, MOVE_BITE), + LEVEL_UP_MOVE(41, MOVE_HAZE), + LEVEL_UP_MOVE(48, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(62, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const struct LevelUpMove sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_MOONBLAST), + LEVEL_UP_MOVE(32, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(36, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(32, MOVE_MOONBLAST), + LEVEL_UP_MOVE(38, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const struct LevelUpMove sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_ABSORB), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_GROWTH), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(54, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(11, MOVE_ABSORB), + LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(22, MOVE_SPORE), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(66, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const struct LevelUpMove sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(11, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(25, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(37, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_POISON_FANG), + LEVEL_UP_MOVE(55, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const struct LevelUpMove sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_SANDSTORM), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(28, MOVE_SANDSTORM), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const struct LevelUpMove sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SOAK), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(34, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(27, MOVE_SOAK), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const struct LevelUpMove sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(33, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(44, MOVE_OUTRAGE), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_ROAR), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 5, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(24, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_ROAR), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 5, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(64, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 6, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(56, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIND_READER), + LEVEL_UP_MOVE( 1, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BOUNCE), + LEVEL_UP_MOVE( 1, MOVE_BOUNCE), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const struct LevelUpMove sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 5, MOVE_PSYBEAM), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 5, MOVE_PSYBEAM), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct LevelUpMove sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(29, MOVE_STRENGTH), + LEVEL_UP_MOVE(32, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(36, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(44, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(31, MOVE_STRENGTH), + LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(42, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(31, MOVE_STRENGTH), + LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE(42, MOVE_BULK_UP), + LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(41, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(39, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(44, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(47, MOVE_POISON_JAB), + LEVEL_UP_MOVE(54, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_SURF), + LEVEL_UP_MOVE(52, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_HARDEN), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const struct LevelUpMove sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_INFERNO), + LEVEL_UP_MOVE(50, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_INFERNO), + LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_LOCK_ON), + LEVEL_UP_MOVE(52, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_LOCK_ON), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_LOCK_ON), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_CUT), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_AGILITY), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const struct LevelUpMove sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_UPROAR), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_LUNGE), + LEVEL_UP_MOVE(43, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(29, MOVE_UPROAR), + LEVEL_UP_MOVE(34, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_LUNGE), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const struct LevelUpMove sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(47, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_HAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewgongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_ICY_WIND), + LEVEL_UP_MOVE(13, MOVE_ENCORE), + LEVEL_UP_MOVE(17, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(23, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_JET), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DIVE), + LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(55, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(65, MOVE_HAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const struct LevelUpMove sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SLUDGE), + LEVEL_UP_MOVE(18, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_TOXIC), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const struct LevelUpMove sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(20, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_SHELL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const struct LevelUpMove sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const struct LevelUpMove sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(52, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(44, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(52, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_POISON_GAS), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(51, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_FLAIL), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(54, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(60, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_SPARK), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(47, MOVE_EXPLOSION), + LEVEL_UP_MOVE(54, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(58, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 5, MOVE_REFLECT), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(50, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const struct LevelUpMove sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_RETALIATE), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(29, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(40, MOVE_BONEMERANG), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_RETALIATE), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(31, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(48, MOVE_BONEMERANG), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(31, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(36, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(48, MOVE_BONEMERANG), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE( 1, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(24, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(28, MOVE_MIND_READER), + LEVEL_UP_MOVE(32, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 8, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(24, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_REVENGE), + LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG +static const struct LevelUpMove sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WRAP), + LEVEL_UP_MOVE(24, MOVE_DISABLE), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_SLAM), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WRAP), + LEVEL_UP_MOVE(24, MOVE_DISABLE), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_SLAM), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const struct LevelUpMove sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_HAZE), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_HAZE), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(10, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MEGAHORN), + LEVEL_UP_MOVE(68, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(35, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MEGAHORN), + LEVEL_UP_MOVE(68, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(75, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_SING), + LEVEL_UP_MOVE(20, MOVE_FLING), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const struct LevelUpMove sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_TICKLE), + LEVEL_UP_MOVE(48, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(52, MOVE_INGRAIN), + LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_TICKLE), + LEVEL_UP_MOVE(48, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(52, MOVE_INGRAIN), + LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(44, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_OUTRAGE), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA +static const struct LevelUpMove sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(35, MOVE_WATERFALL), + LEVEL_UP_MOVE(40, MOVE_SOAK), + LEVEL_UP_MOVE(45, MOVE_MEGAHORN), + LEVEL_UP_MOVE(50, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_AQUA_RING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_WATERFALL), + LEVEL_UP_MOVE(44, MOVE_SOAK), + LEVEL_UP_MOVE(51, MOVE_MEGAHORN), + LEVEL_UP_MOVE(58, MOVE_HORN_DRILL), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const struct LevelUpMove sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_SURF), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 8, MOVE_ENCORE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_RECYCLE), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_MIMIC), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_RECYCLE), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_MIMIC), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_REFLECT), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const struct LevelUpMove sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STONE_AXE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_PSYCHIC), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(44, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_COVET), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(52, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +static const struct LevelUpMove sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_LOW_KICK), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const struct LevelUpMove sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STORM_THROW), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_SUBMISSION), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(52, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const struct LevelUpMove sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_ICE_FANG), + LEVEL_UP_MOVE(12, MOVE_BRINE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_WATERFALL), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_HURRICANE), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const struct LevelUpMove sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(60, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const struct LevelUpMove sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const struct LevelUpMove sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_COPYCAT), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_CHARM), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_HAZE), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_THUNDER), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(45, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(35, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(30, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(35, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(40, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const struct LevelUpMove sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 5, MOVE_RECYCLE), + LEVEL_UP_MOVE(10, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_CONVERSION_2), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(35, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(55, MOVE_LOCK_ON), + LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(50, MOVE_SURF), + LEVEL_UP_MOVE(55, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(56, MOVE_SURF), + LEVEL_UP_MOVE(63, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const struct LevelUpMove sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(50, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(55, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_BRINE), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(49, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(56, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(50, MOVE_AGILITY), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_RECYCLE), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_STOCKPILE), + LEVEL_UP_MOVE(20, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(32, MOVE_FLING), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_METRONOME), + LEVEL_UP_MOVE(44, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE(12, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(20, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(44, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const struct LevelUpMove sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_HAZE), + LEVEL_UP_MOVE(65, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const struct LevelUpMove sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const struct LevelUpMove sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(50, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_OVERHEAT), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const struct LevelUpMove sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(40, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(41, MOVE_OUTRAGE), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(16, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(56, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(64, MOVE_MIST), + LEVEL_UP_MOVE(72, MOVE_PSYSTRIKE), + LEVEL_UP_MOVE(80, MOVE_RECOVER), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const struct LevelUpMove sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(10, MOVE_AMNESIA), + LEVEL_UP_MOVE(20, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_METRONOME), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_TRANSFORM), + LEVEL_UP_MOVE(90, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(100, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA +static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(17, MOVE_REFLECT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(23, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(18, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL +static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(46, MOVE_INFERNO), + LEVEL_UP_MOVE(49, MOVE_ROLLOUT), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(58, MOVE_OVERHEAT), + LEVEL_UP_MOVE(64, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(53, MOVE_INFERNO), + LEVEL_UP_MOVE(57, MOVE_ROLLOUT), + LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(68, MOVE_OVERHEAT), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(74, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(74, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE +static const struct LevelUpMove sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(22, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_LOW_KICK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_LOW_KICK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(21, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_LOW_KICK), + LEVEL_UP_MOVE(45, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_THRASH), + LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(71, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET +static const struct LevelUpMove sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(39, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_COIL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT +static const struct LevelUpMove sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(21, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_MOONBLAST), + LEVEL_UP_MOVE(36, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_ROOST), + LEVEL_UP_MOVE(43, MOVE_MOONBLAST), + LEVEL_UP_MOVE(48, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(53, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA +static const struct LevelUpMove sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(12, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SWIFT), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(12, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(20, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK +static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_POISON_JAB), + LEVEL_UP_MOVE(47, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(50, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(54, MOVE_TOXIC_THREAD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAriadosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_POISON_JAB), + LEVEL_UP_MOVE(55, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(58, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(63, MOVE_TOXIC_THREAD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU +static const struct LevelUpMove sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 4, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(36, MOVE_FLAIL), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWALLOW), + LEVEL_UP_MOVE( 0, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 0, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_CHARGE), + LEVEL_UP_MOVE(30, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +static const struct LevelUpMove sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_METRONOME), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_METRONOME), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(44, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(52, MOVE_WISH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU +static const struct LevelUpMove sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_STORED_POWER), + LEVEL_UP_MOVE(10, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(26, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(30, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_WISH), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(34, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(34, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_WISH), + LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP +static const struct LevelUpMove sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(46, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_POWER_GEM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(47, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(56, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_POWER_GEM), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(51, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(62, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_MOVE(19, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(21, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(30, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_SLAM), + LEVEL_UP_MOVE(15, MOVE_BOUNCE), + LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 4, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_BLOCK), + LEVEL_UP_MOVE(16, MOVE_MIMIC), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_BLOCK), + LEVEL_UP_MOVE(16, MOVE_MIMIC), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_LOW_KICK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP +static const struct LevelUpMove sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(12, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(15, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(29, MOVE_U_TURN), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(38, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(34, MOVE_U_TURN), + LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_BOUNCE), + LEVEL_UP_MOVE(44, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 8, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(15, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(39, MOVE_U_TURN), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(55, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM +static const struct LevelUpMove sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN +static const struct LevelUpMove sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(39, MOVE_SEED_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_INGRAIN), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(31, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(39, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA +static const struct LevelUpMove sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +static const struct LevelUpMove sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(34, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(46, MOVE_TOXIC), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW +static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_GUST), + LEVEL_UP_MOVE(11, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(55, MOVE_TORMENT), + LEVEL_UP_MOVE(60, MOVE_QUASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(65, MOVE_COMEUPPANCE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS +static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(23, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(37, MOVE_PAYBACK), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(50, MOVE_POWER_GEM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +static const struct LevelUpMove sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS + +static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 0, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 0, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG +static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO +static const struct LevelUpMove sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_ROLLOUT), + LEVEL_UP_MOVE(23, MOVE_CURSE), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_EXPLOSION), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(20, MOVE_ROLLOUT), + LEVEL_UP_MOVE(23, MOVE_CURSE), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(32, MOVE_PAYBACK), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE +static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR +static const struct LevelUpMove sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL +static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(43, MOVE_PAYBACK), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_LICK), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_ROAR), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(51, MOVE_PAYBACK), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_MOVE(67, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_POISON_JAB), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE +static const struct LevelUpMove sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(20, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_BUG_BITE), + LEVEL_UP_MOVE(35, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(40, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(45, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(50, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(55, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(65, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(25, MOVE_COUNTER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(45, MOVE_THRASH), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +static const struct LevelUpMove sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_BEAT_UP), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_SLASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_FLING), + LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(66, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA +static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_EARTH_POWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(58, MOVE_EARTH_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB +static const struct LevelUpMove sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_ICY_WIND), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_BLIZZARD), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_AQUA_RING), + LEVEL_UP_MOVE(15, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(35, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_RECOVER), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID +static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 4, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_LOCK_ON), + LEVEL_UP_MOVE(28, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(40, MOVE_SOAK), + LEVEL_UP_MOVE(44, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_LOCK_ON), + LEVEL_UP_MOVE(30, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD +static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE(25, MOVE_DRILL_PECK), + LEVEL_UP_END +}; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_BOUNCE), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY +static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(20, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_STEEL_WING), + LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_SPIKES), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR +static const struct LevelUpMove sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_SMOG), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_INCINERATE), + LEVEL_UP_MOVE(25, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(32, MOVE_TORMENT), + LEVEL_UP_MOVE(37, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(13, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_INCINERATE), + LEVEL_UP_MOVE(26, MOVE_BEAT_UP), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(41, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY +static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_FLAIL), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER +static const struct LevelUpMove sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE +static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK +static const struct LevelUpMove sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_MOVE(55, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU +static const struct LevelUpMove sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SPARK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(36, MOVE_HOWL), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_REFLECT), + LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_THUNDER), + LEVEL_UP_MOVE(78, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI +static const struct LevelUpMove sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(66, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE +static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_ICE_FANG), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR +static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_PAYBACK), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(33, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(39, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(47, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA +static const struct LevelUpMove sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_AEROBLAST), + LEVEL_UP_MOVE(63, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH +static const struct LevelUpMove sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 9, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(54, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(63, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(99, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI +static const struct LevelUpMove sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(20, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(40, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(50, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(60, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(80, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(90, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO +static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(18, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(39, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(55, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(63, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC +static const struct LevelUpMove sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_BOUNCE), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_REVERSAL), + LEVEL_UP_MOVE(39, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BOUNCE), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(40, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(45, MOVE_BULK_UP), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BOUNCE), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(42, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(49, MOVE_BULK_UP), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP +static const struct LevelUpMove sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(39, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_SURF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(56, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA +static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(19, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_ASSURANCE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(31, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_YAWN), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_FLING), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(33, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_COVET), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FLING), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE +static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_POISON_STING), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_ABSORB), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD +static const struct LevelUpMove sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(57, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_END +}; +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT +static const struct LevelUpMove sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 3, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(21, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(24, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(27, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(57, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW +static const struct LevelUpMove sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(33, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(37, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(45, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(27, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const struct LevelUpMove sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_MIST), + LEVEL_UP_MOVE(40, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(41, MOVE_MIST), + LEVEL_UP_MOVE(48, MOVE_ROOST), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const struct LevelUpMove sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 3, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(36, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_MOONBLAST), + LEVEL_UP_MOVE(56, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_CALM_MIND), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE( 9, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(12, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(23, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(56, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(56, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_SOAK), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_HAZE), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_STICKY_WEB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(26, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(39, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(27, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(45, MOVE_FLING), + LEVEL_UP_MOVE(52, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(63, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(21, MOVE_ABSORB), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_MIND_READER), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCREECH), + LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_ABSORB), + LEVEL_UP_MOVE(29, MOVE_BUG_BITE), + LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(50, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(64, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GRUDGE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(23, MOVE_ABSORB), + LEVEL_UP_MOVE(29, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_MIND_READER), + LEVEL_UP_MOVE(50, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(57, MOVE_SPITE), + LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(10, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(35, MOVE_UPROAR), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(50, MOVE_SCREECH), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(72, MOVE_BOOMBURST), + LEVEL_UP_MOVE(81, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_BULK_UP), + LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(38, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(42, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(50, MOVE_BODY_PRESS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_PAYBACK), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(34, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_QUASH), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 8, MOVE_BATON_PASS), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_STOCKPILE), + LEVEL_UP_MOVE(16, MOVE_SWALLOW), + LEVEL_UP_MOVE(16, MOVE_SPIT_UP), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(44, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 8, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(33, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(44, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(52, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(52, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(76, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(56, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(64, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(72, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(88, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_COUNTER), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(54, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_WISH), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_COVET), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(30, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(45, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(55, MOVE_INGRAIN), + LEVEL_UP_MOVE(60, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_STOCKPILE), + LEVEL_UP_MOVE(30, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_SWALLOW), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(49, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(46, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(30, MOVE_DIVE), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_YAWN), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(16, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_CURSE), + LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(64, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_GROWL), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(40, MOVE_PAYBACK), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE(18, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_DIG), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_UPROAR), + LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(68, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(19, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(50, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(19, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_SING), + LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(19, MOVE_GLARE), + LEVEL_UP_MOVE(21, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(31, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_HAZE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(35, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(30, MOVE_PSYCHIC), + LEVEL_UP_MOVE(35, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(40, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_REST), + LEVEL_UP_MOVE( 6, MOVE_SNORE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 1, MOVE_SNORE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_AMNESIA), + LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(34, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(58, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(64, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 3, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_IMPRISON), + LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(36, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(39, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(12, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_IMPRISON), + LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(38, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(38, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(43, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_INGRAIN), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AMNESIA), + LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(41, MOVE_STOCKPILE), + LEVEL_UP_MOVE(41, MOVE_SPIT_UP), + LEVEL_UP_MOVE(41, MOVE_SWALLOW), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_INGRAIN), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AMNESIA), + LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(43, MOVE_STOCKPILE), + LEVEL_UP_MOVE(43, MOVE_SPIT_UP), + LEVEL_UP_MOVE(43, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(43, MOVE_PROTECT), + LEVEL_UP_MOVE(48, MOVE_X_SCISSOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_TWISTER), + LEVEL_UP_MOVE(12, MOVE_AQUA_RING), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(20, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_COIL), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(35, MOVE_BLIZZARD), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_FEINT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_TRICK), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_TRICK), + LEVEL_UP_MOVE(53, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_DISABLE), + LEVEL_UP_MOVE( 8, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_PAYBACK), + LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(50, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(27, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_BITE), + LEVEL_UP_MOVE(40, MOVE_ICE_FANG), + LEVEL_UP_MOVE(45, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(50, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_BITE), + LEVEL_UP_MOVE(40, MOVE_ICE_FANG), + LEVEL_UP_MOVE(47, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(54, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(68, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(35, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(40, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(54, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(61, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(68, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(33, MOVE_ENCORE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_HAIL), + LEVEL_UP_MOVE(52, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_SURF), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_HAIL), + LEVEL_UP_MOVE(64, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(20, MOVE_SNORE), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_SURF), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_HAIL), + LEVEL_UP_MOVE(72, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 5, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE( 5, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_AMNESIA), + LEVEL_UP_MOVE(19, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE(13, MOVE_WISH), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ATTRACT), + LEVEL_UP_MOVE(22, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(40, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON +static const struct LevelUpMove sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(31, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(53, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_MOVE(67, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLY), + LEVEL_UP_MOVE( 1, MOVE_ROOST), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(55, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM +static const struct LevelUpMove sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(18, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(16, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(42, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(52, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(62, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(72, MOVE_AGILITY), + LEVEL_UP_MOVE(82, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK +static const struct LevelUpMove sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE +static const struct LevelUpMove sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL +static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(24, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +static const struct LevelUpMove sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_TAILWIND), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(55, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(70, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +static const struct LevelUpMove sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_TAILWIND), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_MOVE(65, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_ORIGIN_PULSE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(18, MOVE_CALM_MIND), + LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE( 1, MOVE_PRECIPICE_BLADES), + LEVEL_UP_MOVE( 9, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(18, MOVE_BULK_UP), + LEVEL_UP_MOVE(27, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(45, MOVE_FISSURE), + LEVEL_UP_MOVE(54, MOVE_REST), + LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(90, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_ASCENT), + LEVEL_UP_MOVE( 9, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(27, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_REST), + LEVEL_UP_MOVE(63, MOVE_FLY), + LEVEL_UP_MOVE(72, MOVE_HURRICANE), + LEVEL_UP_MOVE(81, MOVE_OUTRAGE), + LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI +static const struct LevelUpMove sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(21, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_GRAVITY), + LEVEL_UP_MOVE(42, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(63, MOVE_REST), + LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(77, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(84, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(91, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(98, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_COUNTER), + LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG +static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrotleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorterraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(33, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR +static const struct LevelUpMove sChimcharLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FACADE), + LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(39, MOVE_ACROBATICS), + LEVEL_UP_MOVE(41, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMonfernoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_TORMENT), + LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_ACROBATICS), + LEVEL_UP_MOVE(49, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_FACADE), + LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(29, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(52, MOVE_ACROBATICS), + LEVEL_UP_MOVE(58, MOVE_CALM_MIND), + LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP +static const struct LevelUpMove sPiplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CHARM), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_MIST), + LEVEL_UP_MOVE(39, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrinplupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CHARM), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(15, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_BRINE), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_MIST), + LEVEL_UP_MOVE(52, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY +static const struct LevelUpMove sStarlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(17, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraviaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF +static const struct LevelUpMove sBidoofLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(49, MOVE_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBibarelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(18, MOVE_TAUNT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_AMNESIA), + LEVEL_UP_MOVE(53, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(58, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT +static const struct LevelUpMove sKricketotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(14, MOVE_ABSORB), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(34, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(44, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX +static const struct LevelUpMove sShinxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SPARK), + LEVEL_UP_MOVE(20, MOVE_ROAR), + LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(54, MOVE_DISCHARGE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(68, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(48, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_SWAGGER), + LEVEL_UP_MOVE(80, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS +static const struct LevelUpMove sCranidosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRampardosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(51, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON +static const struct LevelUpMove sShieldonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(33, MOVE_ENDURE), + LEVEL_UP_MOVE(37, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_BURST), + LEVEL_UP_MOVE(51, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +static const struct LevelUpMove sBurmyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_METAL_BURST), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_INFESTATION), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMothimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(29, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_ROOST), + LEVEL_UP_MOVE(38, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(41, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE +static const struct LevelUpMove sCombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(28, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_ATTACK_ORDER), + LEVEL_UP_MOVE(40, MOVE_DEFEND_ORDER), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU +static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(19, MOVE_NUZZLE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(29, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(37, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL +static const struct LevelUpMove sBuizelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SOAK), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AQUA_JET), + LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(62, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI +static const struct LevelUpMove sCherubiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(26, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCherrimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(62, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +static const struct LevelUpMove sShellosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_RECOVER), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(35, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(15, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(39, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(53, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON +static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_GUST), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(24, MOVE_STOCKPILE), + LEVEL_UP_MOVE(24, MOVE_SPIT_UP), + LEVEL_UP_MOVE(24, MOVE_SWALLOW), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(36, MOVE_BATON_PASS), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_PAYBACK), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(24, MOVE_SPIT_UP), + LEVEL_UP_MOVE(24, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_STOCKPILE), + LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(42, MOVE_BATON_PASS), + LEVEL_UP_MOVE(48, MOVE_TAILWIND), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY +static const struct LevelUpMove sBunearyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_BATON_PASS), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_FLATTER), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(24, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_BATON_PASS), + LEVEL_UP_MOVE(32, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_FLATTER), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(52, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW +static const struct LevelUpMove sGlameowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_ATTRACT), + LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(50, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 5, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_RETALIATE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(52, MOVE_ATTRACT), + LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY +static const struct LevelUpMove sStunkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_FEINT), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_BELCH), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_MEMENTO), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(43, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR +static const struct LevelUpMove sBronzorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBronzongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(44, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT +static const struct LevelUpMove sChatotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_CHATTER), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 5, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_CHATTER), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(29, MOVE_ROUND), + LEVEL_UP_MOVE(33, MOVE_MIMIC), + LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(41, MOVE_ROOST), + LEVEL_UP_MOVE(45, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(50, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB +static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 5, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(15, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_MEMENTO), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(55, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE +static const struct LevelUpMove sGibleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_DIG), + LEVEL_UP_MOVE(48, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGabiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(50, MOVE_DIG), + LEVEL_UP_MOVE(58, MOVE_SANDSTORM), + LEVEL_UP_MOVE(66, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(74, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarchompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(52, MOVE_DIG), + LEVEL_UP_MOVE(62, MOVE_SANDSTORM), + LEVEL_UP_MOVE(72, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(82, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU +static const struct LevelUpMove sRioluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 4, MOVE_FEINT), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_COUNTER), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(24, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(48, MOVE_COPYCAT), + LEVEL_UP_MOVE(52, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLucarioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(12, MOVE_COUNTER), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(24, MOVE_CALM_MIND), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(36, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS +static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_SANDSTORM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_MOVE(52, MOVE_SLACK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_SANDSTORM), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_MOVE(62, MOVE_SLACK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI +static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 6, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 9, MOVE_POISON_FANG), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrapionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 9, MOVE_POISON_FANG), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_BUG_BITE), + LEVEL_UP_MOVE(21, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(39, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(54, MOVE_CRUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK +static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_FLATTER), + LEVEL_UP_MOVE(16, MOVE_LOW_KICK), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(44, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(48, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_FLATTER), + LEVEL_UP_MOVE(16, MOVE_LOW_KICK), + LEVEL_UP_MOVE(20, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE +static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_INGRAIN), + LEVEL_UP_MOVE(27, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(37, MOVE_STOCKPILE), + LEVEL_UP_MOVE(37, MOVE_SPIT_UP), + LEVEL_UP_MOVE(37, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(47, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON +static const struct LevelUpMove sFinneonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_AQUA_RING), + LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(42, MOVE_U_TURN), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_TAILWIND), + LEVEL_UP_MOVE(54, MOVE_SOAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLumineonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(26, MOVE_ATTRACT), + LEVEL_UP_MOVE(29, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_TAILWIND), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER +static const struct LevelUpMove sSnoverLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(15, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(25, MOVE_ICY_WIND), + LEVEL_UP_MOVE(30, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(43, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +static const struct LevelUpMove sRotomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(35, MOVE_HEX), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_TRICK), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE +static const struct LevelUpMove sUxieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_YAWN), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_FLAIL), + LEVEL_UP_MOVE(77, MOVE_MEMENTO), + LEVEL_UP_MOVE(84, MOVE_MYSTICAL_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT +static const struct LevelUpMove sMespritLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_COPYCAT), + LEVEL_UP_MOVE(77, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(84, MOVE_MYSTICAL_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF +static const struct LevelUpMove sAzelfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_REST), + LEVEL_UP_MOVE( 7, MOVE_SWIFT), + LEVEL_UP_MOVE(14, MOVE_DETECT), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(28, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(56, MOVE_UPROAR), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(77, MOVE_EXPLOSION), + LEVEL_UP_MOVE(84, MOVE_MYSTICAL_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +static const struct LevelUpMove sDialgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(48, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(64, MOVE_METAL_BURST), + LEVEL_UP_MOVE(72, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(80, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(88, MOVE_ROAR_OF_TIME), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(48, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(64, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(72, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(80, MOVE_SPACIAL_REND), + LEVEL_UP_MOVE(88, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN +static const struct LevelUpMove sHeatranLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(66, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(72, MOVE_MAGMA_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS +static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 6, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_REVENGE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(36, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(42, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(78, MOVE_CRUSH_GRIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 7, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(56, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(70, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(77, MOVE_SHADOW_FORCE), + LEVEL_UP_MOVE(84, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA +static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(30, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(66, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_LUNAR_DANCE), + LEVEL_UP_MOVE(72, MOVE_LUNAR_BLESSING), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY +static const struct LevelUpMove sPhioneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManaphyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(46, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(54, MOVE_AQUA_RING), + LEVEL_UP_MOVE(61, MOVE_DIVE), + LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI +static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(57, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_DARK_VOID), + LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(84, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(68, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +static const struct LevelUpMove sArceusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(10, MOVE_GRAVITY), + LEVEL_UP_MOVE(20, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(90, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(100, MOVE_JUDGMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI +static const struct LevelUpMove sVictiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_V_CREATE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(14, MOVE_INCINERATE), + LEVEL_UP_MOVE(21, MOVE_STORED_POWER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_ENDURE), + LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(49, MOVE_INFERNO), + LEVEL_UP_MOVE(56, MOVE_REVERSAL), + LEVEL_UP_MOVE(63, MOVE_SEARING_SHOT), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(84, MOVE_OVERHEAT), + LEVEL_UP_MOVE(91, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY +static const struct LevelUpMove sSnivyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(31, MOVE_COIL), + LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_WRING_OUT), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sServineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(36, MOVE_COIL), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(52, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_WRAP), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(38, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_WRING_OUT), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG +static const struct LevelUpMove sTepigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(19, MOVE_SMOG), + LEVEL_UP_MOVE(21, MOVE_ROLLOUT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(31, MOVE_ASSURANCE), + LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(39, MOVE_ROAR), + LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPigniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(47, MOVE_ROAR), + LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEmboarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_SMOG), + LEVEL_UP_MOVE(23, MOVE_ROLLOUT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(38, MOVE_ASSURANCE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(55, MOVE_ROAR), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT +static const struct LevelUpMove sOshawottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_SOAK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(23, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(29, MOVE_AQUA_JET), + LEVEL_UP_MOVE(31, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(37, MOVE_RETALIATE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDewottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(26, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(37, MOVE_ENCORE), + LEVEL_UP_MOVE(42, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RETALIATE), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_ENCORE), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_RETALIATE), + LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_ENCORE), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_RETALIATE), + LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT +static const struct LevelUpMove sPatratLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(21, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(23, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_WORK_UP), + LEVEL_UP_MOVE(31, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(33, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(38, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWatchogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_BIDE), + LEVEL_UP_MOVE(11, MOVE_DETECT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(18, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP +static const struct LevelUpMove sLillipupLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_WORK_UP), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(17, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(20, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_REVERSAL), + LEVEL_UP_MOVE(40, MOVE_ROAR), + LEVEL_UP_MOVE(44, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHerdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(48, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_ROAR), + LEVEL_UP_MOVE(60, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_RETALIATE), + LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(54, MOVE_REVERSAL), + LEVEL_UP_MOVE(62, MOVE_ROAR), + LEVEL_UP_MOVE(70, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN +static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLiepardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_TORMENT), + LEVEL_UP_MOVE(23, MOVE_ASSURANCE), + LEVEL_UP_MOVE(28, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(52, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE +static const struct LevelUpMove sPansageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisageLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR +static const struct LevelUpMove sPansearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimisearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR +static const struct LevelUpMove sPanpourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SCALD), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_BRINE), + LEVEL_UP_MOVE(37, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSimipourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_SCALD), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA +static const struct LevelUpMove sMunnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 8, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_IMPRISON), + LEVEL_UP_MOVE(16, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(20, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_CALM_MIND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE +static const struct LevelUpMove sPidoveLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(44, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTranquillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(34, MOVE_DETECT), + LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(50, MOVE_ROOST), + LEVEL_UP_MOVE(58, MOVE_TAILWIND), + LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE +static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(31, MOVE_STOMP), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(53, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_ION_DELUGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA +static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoldoreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGigalithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(12, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(42, MOVE_SANDSTORM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT +static const struct LevelUpMove sWoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_IMPRISON), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_IMPRISON), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_CALM_MIND), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR +static const struct LevelUpMove sDrilburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SANDSTORM), + LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_DIG), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SANDSTORM), + LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(34, MOVE_DIG), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(58, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO +static const struct LevelUpMove sAudinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_GROWL), + LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(56, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(60, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR +static const struct LevelUpMove sTimburrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGurdurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_BULK_UP), + LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(54, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE +static const struct LevelUpMove sTympoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_AQUA_RING), + LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(30, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(62, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH +static const struct LevelUpMove sThrohLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(15, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(20, MOVE_REVENGE), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_STORM_THROW), + LEVEL_UP_MOVE(35, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_ENDURE), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK +static const struct LevelUpMove sSawkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(20, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(40, MOVE_COUNTER), + LEVEL_UP_MOVE(45, MOVE_ENDURE), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE +static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwadloonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(29, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(39, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE +static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 8, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(50, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(58, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(74, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 3, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(21, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(42, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(45, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_TAILWIND), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HURRICANE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL +static const struct LevelUpMove sPetililLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(27, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_MAGICAL_LEAF), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_MEGA_KICK), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +static const struct LevelUpMove sBasculinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE +static const struct LevelUpMove sSandileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_SANDSTORM), + LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrokorokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_TORMENT), + LEVEL_UP_MOVE(21, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SANDSTORM), + LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_INCINERATE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_INCINERATE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS +static const struct LevelUpMove sMaractusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(32, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(36, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(60, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE +static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(40, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrustleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_BUG_BITE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(56, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY +static const struct LevelUpMove sScraggyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_PAYBACK), + LEVEL_UP_MOVE( 8, MOVE_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FACADE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScraftyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FACADE), + LEVEL_UP_MOVE(20, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_BEAT_UP), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(54, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(60, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH +static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_GRAVITY), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_REFLECT), + LEVEL_UP_MOVE(55, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(60, MOVE_SKILL_SWAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +static const struct LevelUpMove sYamaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_GRUDGE), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_GRUDGE), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA +static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 3, MOVE_PROTECT), + LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(39, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(51, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN +static const struct LevelUpMove sArchenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(39, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_MOVE(51, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH +static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 3, MOVE_RECYCLE), + LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(21, MOVE_STOCKPILE), + LEVEL_UP_MOVE(21, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(33, MOVE_BELCH), + LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(39, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(42, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(18, MOVE_SLUDGE), + LEVEL_UP_MOVE(21, MOVE_STOCKPILE), + LEVEL_UP_MOVE(21, MOVE_SWALLOW), + LEVEL_UP_MOVE(24, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(30, MOVE_TOXIC), + LEVEL_UP_MOVE(33, MOVE_BELCH), + LEVEL_UP_MOVE(39, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(43, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(48, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +static const struct LevelUpMove sZoruaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_TORMENT), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(34, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_IMPRISON), + LEVEL_UP_MOVE(46, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_TORMENT), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_SPITE), + LEVEL_UP_MOVE(34, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO +static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_SING), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_TICKLE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_SLAM), + LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA +static const struct LevelUpMove sGothitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_TICKLE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_FLATTER), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(35, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_FLATTER), + LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(35, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(64, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS +static const struct LevelUpMove sSolosisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_RECOVER), + LEVEL_UP_MOVE( 8, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDuosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(46, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(58, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(16, MOVE_CHARM), + LEVEL_UP_MOVE(20, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(64, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT +static const struct LevelUpMove sDucklettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(37, MOVE_TAILWIND), + LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(46, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwannaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_DEFOG), + LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AQUA_RING), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAILWIND), + LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE +static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(48, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_AVALANCHE), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(32, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HORN_LEECH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA +static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_CHARGE), + LEVEL_UP_MOVE(25, MOVE_ACROBATICS), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_ENCORE), + LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(45, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(50, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST +static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_ENDURE), + LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_REVERSAL), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(52, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS +static const struct LevelUpMove sFoongusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_INGRAIN), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(42, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH +static const struct LevelUpMove sFrillishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_POISON_STING), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sJellicentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_RECOVER), + LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA +static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_AQUA_RING), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(33, MOVE_SOAK), + LEVEL_UP_MOVE(37, MOVE_WISH), + LEVEL_UP_MOVE(41, MOVE_BRINE), + LEVEL_UP_MOVE(45, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK +static const struct LevelUpMove sJoltikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 4, MOVE_ELECTROWEB), + LEVEL_UP_MOVE( 8, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_ELECTROWEB), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(12, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED +static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(56, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK +static const struct LevelUpMove sKlinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(44, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(48, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(24, MOVE_DISCHARGE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND), + LEVEL_UP_MOVE(36, MOVE_LOCK_ON), + LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(64, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO +static const struct LevelUpMove sTynamoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrikLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(54, MOVE_COIL), + LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(74, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_COIL), + LEVEL_UP_MOVE( 5, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM +static const struct LevelUpMove sElgyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_IMPRISON), + LEVEL_UP_MOVE(12, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_CALM_MIND), + LEVEL_UP_MOVE(54, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(60, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(52, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(68, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK +static const struct LevelUpMove sLitwickLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_INFERNO), + LEVEL_UP_MOVE(44, MOVE_IMPRISON), + LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(52, MOVE_OVERHEAT), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLampentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_HEX), + LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_INFERNO), + LEVEL_UP_MOVE(46, MOVE_IMPRISON), + LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(58, MOVE_OVERHEAT), + LEVEL_UP_MOVE(64, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChandelureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE( 1, MOVE_OVERHEAT), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW +static const struct LevelUpMove sAxewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_OUTRAGE), + LEVEL_UP_MOVE(45, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFraxureLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(51, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(12, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SLASH), + LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(30, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(46, MOVE_OUTRAGE), + LEVEL_UP_MOVE(53, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO +static const struct LevelUpMove sCubchooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 3, MOVE_ENDURE), + LEVEL_UP_MOVE( 6, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(15, MOVE_BRINE), + LEVEL_UP_MOVE(18, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_BLIZZARD), + LEVEL_UP_MOVE(42, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBearticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(15, MOVE_BRINE), + LEVEL_UP_MOVE(18, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(51, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL +static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(40, MOVE_REFLECT), + LEVEL_UP_MOVE(44, MOVE_RECOVER), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(52, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET +static const struct LevelUpMove sShelmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_ACID), + LEVEL_UP_MOVE( 8, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(52, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_CHARGE), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO +static const struct LevelUpMove sMienfooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(10, MOVE_REVERSAL), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(25, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(51, MOVE_BOUNCE), + LEVEL_UP_MOVE(55, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(25, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(53, MOVE_BOUNCE), + LEVEL_UP_MOVE(59, MOVE_CALM_MIND), + LEVEL_UP_MOVE(66, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON +static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(15, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT +static const struct LevelUpMove sGolettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(44, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(48, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolurkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(52, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(64, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD +static const struct LevelUpMove sPawniardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(55, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(65, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBisharpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT +static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_HEAD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_MEGAHORN), + LEVEL_UP_MOVE(55, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET +static const struct LevelUpMove sRuffletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(55, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(60, MOVE_DEFOG), + LEVEL_UP_MOVE(66, MOVE_THRASH), + LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_THRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ESPER_WING), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_THRASH), + LEVEL_UP_MOVE(80, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY +static const struct LevelUpMove sVullabyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(48, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_DEFOG), + LEVEL_UP_MOVE(66, MOVE_ATTRACT), + LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BONE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_BONE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TOXIC), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(42, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(48, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(57, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_ATTRACT), + LEVEL_UP_MOVE(80, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR +static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(10, MOVE_INCINERATE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_STOCKPILE), + LEVEL_UP_MOVE(20, MOVE_SWALLOW), + LEVEL_UP_MOVE(20, MOVE_SPIT_UP), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BIND), + LEVEL_UP_MOVE(35, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(45, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(55, MOVE_INFERNO), + LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT +static const struct LevelUpMove sDurantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(12, MOVE_BEAT_UP), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(52, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO +static const struct LevelUpMove sDeinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(52, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZweilousLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(12, MOVE_ROAR), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_WORK_UP), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(68, MOVE_OUTRAGE), + LEVEL_UP_MOVE(76, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA +static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_BUG_BITE), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(54, MOVE_AMNESIA), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_BUG_BITE), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(54, MOVE_AMNESIA), + LEVEL_UP_MOVE(62, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(78, MOVE_RAGE_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION +static const struct LevelUpMove sCobalionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_METAL_BURST), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION +static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION +static const struct LevelUpMove sVirizionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +static const struct LevelUpMove sTornadusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_SWAGGER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(65, MOVE_HURRICANE), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_MOVE(77, MOVE_BLEAKWIND_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +static const struct LevelUpMove sThundurusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_SWAGGER), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(65, MOVE_THUNDER), + LEVEL_UP_MOVE(70, MOVE_THRASH), + LEVEL_UP_MOVE(75, MOVE_WILDBOLT_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM +static const struct LevelUpMove sReshiramLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(64, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(72, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(88, MOVE_BLUE_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM +static const struct LevelUpMove sZekromLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_CRUNCH), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(64, MOVE_THUNDER), + LEVEL_UP_MOVE(72, MOVE_IMPRISON), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(88, MOVE_BOLT_STRIKE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +static const struct LevelUpMove sLandorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_BLOCK), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_MOVE(80, MOVE_SANDSEAR_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +static const struct LevelUpMove sKyuremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_GLACIATE), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_ICE_BURN), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 8, MOVE_SLASH), + LEVEL_UP_MOVE(16, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(64, MOVE_IMPRISON), + LEVEL_UP_MOVE(72, MOVE_OUTRAGE), + LEVEL_UP_MOVE(80, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(88, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SECRET_SWORD), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(26, MOVE_ACROBATICS), + LEVEL_UP_MOVE(31, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(43, MOVE_U_TURN), + LEVEL_UP_MOVE(50, MOVE_RELIC_SONG), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +static const struct LevelUpMove sGenesectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(35, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(42, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(63, MOVE_SIMPLE_BEAM), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(77, MOVE_LOCK_ON), + LEVEL_UP_MOVE(84, MOVE_TECHNO_BLAST), + LEVEL_UP_MOVE(91, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN +static const struct LevelUpMove sChespinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(35, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuilladinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(38, MOVE_BULK_UP), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(47, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(53, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(41, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(48, MOVE_BULK_UP), + LEVEL_UP_MOVE(54, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN +static const struct LevelUpMove sFennekinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(31, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraixenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(36, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(56, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(59, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(57, MOVE_PSYCHIC), + LEVEL_UP_MOVE(62, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(68, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(74, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE +static const struct LevelUpMove sFroakieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(21, MOVE_ROUND), + LEVEL_UP_MOVE(25, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(39, MOVE_BOUNCE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrogadierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_ROUND), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_SHURIKEN), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_LICK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(28, MOVE_SPIKES), + LEVEL_UP_MOVE(33, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY +static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_DIG), + LEVEL_UP_MOVE(27, MOVE_BOUNCE), + LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_SUPER_FANG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(23, MOVE_BULLDOZE), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(33, MOVE_BOUNCE), + LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING +static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_ACROBATICS), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(35, MOVE_TAILWIND), + LEVEL_UP_MOVE(40, MOVE_STEEL_WING), + LEVEL_UP_MOVE(45, MOVE_ROOST), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFletchinderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_TAILWIND), + LEVEL_UP_MOVE(50, MOVE_STEEL_WING), + LEVEL_UP_MOVE(57, MOVE_ROOST), + LEVEL_UP_MOVE(64, MOVE_FLY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(47, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_STEEL_WING), + LEVEL_UP_MOVE(65, MOVE_ROOST), + LEVEL_UP_MOVE(74, MOVE_FLY), + LEVEL_UP_MOVE(83, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG +static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpewpaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVivillonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(31, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO +static const struct LevelUpMove sLitleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(46, MOVE_INCINERATE), + LEVEL_UP_MOVE(50, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPyroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE(11, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_INCINERATE), + LEVEL_UP_MOVE(57, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(41, MOVE_MOONBLAST), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 5, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO +static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGogoatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM +static const struct LevelUpMove sPanchamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(44, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPangoroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(33, MOVE_RETALIATE), + LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_CHARM), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR +static const struct LevelUpMove sEspurrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(30, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_PSYSHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_CHARM), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_REFLECT), + LEVEL_UP_MOVE(39, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(44, MOVE_IMPRISON), + LEVEL_UP_MOVE(49, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_STORED_POWER), + LEVEL_UP_MOVE(15, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(18, MOVE_COVET), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_REFLECT), + LEVEL_UP_MOVE(39, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(44, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_MOVE(59, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE +static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(48, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDoubladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(38, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(56, MOVE_SACRED_SWORD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAegislashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_END +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE +static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(18, MOVE_ATTRACT), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(18, MOVE_ATTRACT), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_CHARM), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_MOONBLAST), + LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX +static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 3, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(18, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(39, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(42, MOVE_STICKY_WEB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY +static const struct LevelUpMove sInkayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 6, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(31, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(36, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(39, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMalamarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 9, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(18, MOVE_SWAGGER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(33, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(42, MOVE_TOPSY_TURVY), + LEVEL_UP_MOVE(47, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE +static const struct LevelUpMove sBinacleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(42, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP +static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(25, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(52, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(66, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER +static const struct LevelUpMove sClauncherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(55, MOVE_CRABHAMMER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(30, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(49, MOVE_BOUNCE), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(63, MOVE_CRABHAMMER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE +static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_POUND), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CHARGE), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(28, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(40, MOVE_ELECTRIFY), + LEVEL_UP_MOVE(44, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_THUNDER), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT +static const struct LevelUpMove sTyruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_ROAR), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_CHARM), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA +static const struct LevelUpMove sAmauraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_HAIL), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAurorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(48, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA +static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 4, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_ENCORE), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_BOUNCE), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_FLYING_PRESS), + LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE +static const struct LevelUpMove sDedenneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_CHARM), + LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(30, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(60, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK +static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(45, MOVE_POWER_GEM), + LEVEL_UP_MOVE(50, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(55, MOVE_MOONBLAST), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY +static const struct LevelUpMove sGoomyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(41, MOVE_CURSE), + LEVEL_UP_MOVE(45, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(67, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_SHELTER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI +static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(12, MOVE_TORMENT), + LEVEL_UP_MOVE(16, MOVE_FAIRY_LOCK), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(28, MOVE_RECYCLE), + LEVEL_UP_MOVE(32, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP +static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_GROWTH), + LEVEL_UP_MOVE(28, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_INGRAIN), + LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_GROWTH), + LEVEL_UP_MOVE(28, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(32, MOVE_CURSE), + LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_INGRAIN), + LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_TRICK), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_TRICK), + LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_BLIZZARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MOUNTAIN_GALE), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT +static const struct LevelUpMove sNoibatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GUST), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(49, MOVE_TAILWIND), + LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNoivernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(28, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(32, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(44, MOVE_ROOST), + LEVEL_UP_MOVE(51, MOVE_TAILWIND), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +static const struct LevelUpMove sXerneasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(15, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(30, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(35, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(40, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_INGRAIN), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_GEOMANCY), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(85, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL +static const struct LevelUpMove sYveltalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 5, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_SNARL), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_TAILWIND), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_OBLIVION_WING), + LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(60, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(65, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_HURRICANE), + LEVEL_UP_MOVE(75, MOVE_FOCUS_BLAST), + LEVEL_UP_MOVE(80, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE(85, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +static const struct LevelUpMove sZygardeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THOUSAND_ARROWS), + LEVEL_UP_MOVE( 1, MOVE_THOUSAND_WAVES), + LEVEL_UP_MOVE( 1, MOVE_CORE_ENFORCER), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_HAZE), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_LANDS_WRATH), + LEVEL_UP_MOVE(56, MOVE_GLARE), + LEVEL_UP_MOVE(64, MOVE_SANDSTORM), + LEVEL_UP_MOVE(72, MOVE_COIL), + LEVEL_UP_MOVE(80, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(88, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +static const struct LevelUpMove sDiancieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_DIAMOND_STORM), + LEVEL_UP_MOVE( 7, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(14, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(21, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(35, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(56, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(63, MOVE_POWER_GEM), + LEVEL_UP_MOVE(70, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(77, MOVE_MOONBLAST), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_TRICK), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(68, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_TRICK), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION +static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_INCINERATE), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(48, MOVE_SCALD), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(60, MOVE_MIST), + LEVEL_UP_MOVE(60, MOVE_HAZE), + LEVEL_UP_MOVE(66, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(78, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(84, MOVE_OVERHEAT), + LEVEL_UP_MOVE(90, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET +static const struct LevelUpMove sRowletLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(27, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDartrixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN +static const struct LevelUpMove sLittenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTorracatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(45, MOVE_THRASH), + LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(25, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO +static const struct LevelUpMove sPopplioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(24, MOVE_ENCORE), + LEVEL_UP_MOVE(27, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_MOONBLAST), + LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrionneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_ENCORE), + LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(45, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(20, MOVE_SING), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_ENCORE), + LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(51, MOVE_MOONBLAST), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK +static const struct LevelUpMove sPikipekLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(19, MOVE_ROOST), + LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(27, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(31, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(37, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToucannonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(21, MOVE_ROOST), + LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS +static const struct LevelUpMove sYungoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WORK_UP), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(25, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE(13, MOVE_WORK_UP), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(27, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_YAWN), + LEVEL_UP_MOVE(47, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_REST), + LEVEL_UP_END +}; +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN +static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 5, MOVE_STRING_SHOT), + LEVEL_UP_MOVE(10, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharjabugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_DIG), + LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_DIG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(57, MOVE_AGILITY), + LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER +static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(22, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(29, MOVE_PAYBACK), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_SLAM), + LEVEL_UP_MOVE(29, MOVE_AVALANCHE), + LEVEL_UP_MOVE(33, MOVE_REVERSAL), + LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER), + LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +static const struct LevelUpMove sOricorioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(16, MOVE_BATON_PASS), + LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(23, MOVE_ACROBATICS), + LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(30, MOVE_ROOST), + LEVEL_UP_MOVE(33, MOVE_FLATTER), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY +static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(42, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(54, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(40, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(48, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(64, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +static const struct LevelUpMove sRockruffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(44, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_HOWL), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_BEAT_UP), + LEVEL_UP_MOVE(12, MOVE_BRINE), + LEVEL_UP_MOVE(16, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(24, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_AQUA_RING), + LEVEL_UP_MOVE(40, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE +static const struct LevelUpMove sMareanieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(40, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxapexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(15, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY +static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 8, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(40, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(12, MOVE_BULLDOZE), + LEVEL_UP_MOVE(16, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(52, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER +static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 4, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(36, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(44, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(62, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS +static const struct LevelUpMove sFomantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_INGRAIN), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(35, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLurantisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(63, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL +static const struct LevelUpMove sMorelullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_INGRAIN), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(25, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_MOONBLAST), + LEVEL_UP_MOVE(44, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(27, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(38, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(44, MOVE_SPORE), + LEVEL_UP_MOVE(50, MOVE_MOONBLAST), + LEVEL_UP_MOVE(56, MOVE_DREAM_EATER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT +static const struct LevelUpMove sSalanditLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 5, MOVE_SMOG), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(50, MOVE_TOXIC), + LEVEL_UP_MOVE(55, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRE_LASH), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(15, MOVE_POISON_FANG), + LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(58, MOVE_TOXIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL +static const struct LevelUpMove sStuffulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(36, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBewearLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_PAYBACK), + LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(16, MOVE_ENDURE), + LEVEL_UP_MOVE(20, MOVE_STRENGTH), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET +static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(28, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(32, MOVE_AROMATIC_MIST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSteeneeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TROP_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(28, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(58, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY +static const struct LevelUpMove sComfeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(12, MOVE_FLOWER_SHIELD), + LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(18, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(24, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(27, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(30, MOVE_FLORAL_HEALING), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(39, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(42, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(48, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU +static const struct LevelUpMove sOranguruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 5, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(10, MOVE_CALM_MIND), + LEVEL_UP_MOVE(15, MOVE_STORED_POWER), + LEVEL_UP_MOVE(20, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_QUASH), + LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_INSTRUCT), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN +static const struct LevelUpMove sPassimianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_BEAT_UP), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_FLING), + LEVEL_UP_MOVE(35, MOVE_BULK_UP), + LEVEL_UP_MOVE(40, MOVE_THRASH), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD +static const struct LevelUpMove sWimpodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 4, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(16, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST +static const struct LevelUpMove sSandygastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(55, MOVE_SHORE_UP), + LEVEL_UP_MOVE(60, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalossandLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BULLDOZE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(47, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(61, MOVE_SHORE_UP), + LEVEL_UP_MOVE(68, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU +static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(10, MOVE_TAUNT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_PURIFY), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_SOAK), + LEVEL_UP_MOVE(55, MOVE_TOXIC), + LEVEL_UP_MOVE(60, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL +static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 5, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(10, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_POISON_FANG), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +static const struct LevelUpMove sMiniorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_SWIFT), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(38, MOVE_POWER_GEM), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA +static const struct LevelUpMove sKomalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 6, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 6, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 6, MOVE_SWALLOW), + LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR +static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_PROTECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(40, MOVE_SHELL_TRAP), + LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_MOVE(52, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU +static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(20, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(35, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(40, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(60, MOVE_SPIKY_SHIELD), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE( 6, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(18, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(24, MOVE_MIMIC), + LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(48, MOVE_CHARM), + LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH +static const struct LevelUpMove sBruxishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_DISABLE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA +static const struct LevelUpMove sDrampaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 5, MOVE_TWISTER), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_GLARE), + LEVEL_UP_MOVE(20, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(55, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE +static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_GROWTH), + LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(24, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(36, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(52, MOVE_ANCHOR_SHOT), + LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(60, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(64, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(44, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(56, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), + LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_WORK_UP), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(52, MOVE_OUTRAGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(68, MOVE_CLANGOROUS_SOUL), + LEVEL_UP_MOVE(76, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO +static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(15, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(30, MOVE_CHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_SCREECH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(75, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE +static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_FLATTER), + LEVEL_UP_MOVE(30, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(35, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(45, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_TICKLE), + LEVEL_UP_MOVE(70, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU +static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_HORN_LEECH), + LEVEL_UP_MOVE(45, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(65, MOVE_MEGAHORN), + LEVEL_UP_MOVE(70, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(75, MOVE_GRASSY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI +static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_MIST), + LEVEL_UP_MOVE(10, MOVE_HAZE), + LEVEL_UP_MOVE(15, MOVE_AQUA_RING), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_BRINE), + LEVEL_UP_MOVE(30, MOVE_DEFOG), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(40, MOVE_SURF), + LEVEL_UP_MOVE(45, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS), + LEVEL_UP_MOVE(60, MOVE_MOONBLAST), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(70, MOVE_SOAK), + LEVEL_UP_MOVE(75, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG +static const struct LevelUpMove sCosmogLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCosmoemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(14, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(21, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_METAL_BURST), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(70, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLunalaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM), + LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_DAZE), + LEVEL_UP_MOVE(49, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(70, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(84, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO +static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE(10, MOVE_TICKLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(25, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(25, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(30, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_HEADBUTT), + LEVEL_UP_MOVE(40, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(50, MOVE_POWER_GEM), + LEVEL_UP_MOVE(55, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(65, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(70, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE +static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(15, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(40, MOVE_LUNGE), + LEVEL_UP_MOVE(45, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA +static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(35, MOVE_STOMP), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_LUNGE), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_MOVE(55, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(65, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(70, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE +static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_CHARGE), + LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_INGRAIN), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(30, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(35, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE(40, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(45, MOVE_DISCHARGE), + LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(55, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(65, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA +static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(30, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(70, MOVE_SKULL_BASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA +static const struct LevelUpMove sKartanaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), + LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(15, MOVE_CUT), + LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(30, MOVE_DETECT), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(45, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(50, MOVE_DEFOG), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD +static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 5, MOVE_SWALLOW), + LEVEL_UP_MOVE( 5, MOVE_STOCKPILE), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(60, MOVE_BELCH), + LEVEL_UP_MOVE(65, MOVE_THRASH), + LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), + LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), + LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(16, MOVE_SLASH), + LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_STORED_POWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(64, MOVE_POWER_GEM), + LEVEL_UP_MOVE(72, MOVE_PHOTON_GEYSER), + LEVEL_UP_MOVE(80, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(88, MOVE_PRISMATIC_LASER), + LEVEL_UP_END +}; +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(12, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(24, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE(30, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(42, MOVE_LOCK_ON), + LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(54, MOVE_TRICK), + LEVEL_UP_MOVE(60, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(66, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(72, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(78, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(90, MOVE_FLEUR_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW +static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 9, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(18, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(27, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(36, MOVE_ASSURANCE), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(54, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(63, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(72, MOVE_SPECTRAL_THIEF), + LEVEL_UP_MOVE(81, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(90, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(99, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE +static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(63, MOVE_TOXIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(21, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_POISON_JAB), + LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(63, MOVE_TOXIC), + LEVEL_UP_MOVE(70, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA +static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BLOCK), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(30, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(35, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(60, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(65, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON +static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(30, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(40, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_MOVE(55, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(60, MOVE_TRICK), + LEVEL_UP_MOVE(65, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_MIND_BLOWN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA +static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SNARL), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(40, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(56, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(80, MOVE_AGILITY), + LEVEL_UP_MOVE(88, MOVE_PLASMA_FISTS), + LEVEL_UP_MOVE(96, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(56, MOVE_PROTECT), + LEVEL_UP_MOVE(64, MOVE_DISCHARGE), + LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(80, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH), + LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY +static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE( 8, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(28, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(36, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThwackeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(48, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(54, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY +static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(32, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE +static const struct LevelUpMove sSobbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_BIND), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(32, MOVE_SOAK), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrizzileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(36, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sInteleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(38, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(46, MOVE_SOAK), + LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET +static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(45, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreedentLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS), + LEVEL_UP_MOVE(15, MOVE_STOCKPILE), + LEVEL_UP_MOVE(15, MOVE_SPIT_UP), + LEVEL_UP_MOVE(15, MOVE_SWALLOW), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_COUNTER), + LEVEL_UP_MOVE(41, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(48, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(55, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE +static const struct LevelUpMove sRookideeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_SWAGGER), + LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STEEL_WING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PLUCK), + LEVEL_UP_MOVE(22, MOVE_TAUNT), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG +static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDottlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 0, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(44, MOVE_CALM_MIND), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT +static const struct LevelUpMove sNickitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sThievulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BEAT_UP), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SNARL), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR +static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(24, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(36, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEldegossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(16, MOVE_ROUND), + LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(28, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO +static const struct LevelUpMove sWoolooLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 8, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(32, MOVE_REVERSAL), + LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(38, MOVE_REVERSAL), + LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE +static const struct LevelUpMove sChewtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_PROTECT), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(35, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrednawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(57, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER +static const struct LevelUpMove sYamperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_NUZZLE), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(26, MOVE_CHARM), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBoltundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_ROAR), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY +static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCarkolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(55, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(27, MOVE_INCINERATE), + LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH), + LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(63, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN +static const struct LevelUpMove sApplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_ACROBATICS), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_FLY), + LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAppletunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_STOMP), + LEVEL_UP_MOVE(12, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_RECOVER), + LEVEL_UP_MOVE(28, MOVE_APPLE_ACID), + LEVEL_UP_MOVE(32, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA +static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_MINIMIZE), + LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_SAND_TOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_SANDSTORM), + LEVEL_UP_MOVE(42, MOVE_SLAM), + LEVEL_UP_MOVE(49, MOVE_COIL), + LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct LevelUpMove sCramorantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_STOCKPILE), + LEVEL_UP_MOVE( 1, MOVE_SWALLOW), + LEVEL_UP_MOVE( 1, MOVE_SPIT_UP), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PLUCK), + LEVEL_UP_MOVE(28, MOVE_DIVE), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(42, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(30, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(18, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_DIVE), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +static const struct LevelUpMove sToxelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE +static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(30, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(50, MOVE_LUNGE), + LEVEL_UP_MOVE(55, MOVE_BURN_UP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INFERNO), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(25, MOVE_COIL), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(46, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_FIRE_LASH), + LEVEL_UP_MOVE(60, MOVE_LUNGE), + LEVEL_UP_MOVE(67, MOVE_BURN_UP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FEINT), + LEVEL_UP_MOVE(10, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK), + LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE(15, MOVE_DETECT), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(25, MOVE_BULK_UP), + LEVEL_UP_MOVE(30, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_REVERSAL), + LEVEL_UP_MOVE(45, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEATIME), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(18, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(66, MOVE_CURSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const struct LevelUpMove sHatennaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_CALM_MIND), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(15, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(51, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHattereneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(15, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(33, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMorgremLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK), + LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER), + LEVEL_UP_MOVE( 1, MOVE_CONFIDE), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SWAGGER), + LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_TORMENT), + LEVEL_UP_MOVE(35, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +static const struct LevelUpMove sMilceryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_DECORATE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(25, MOVE_ATTRACT), + LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +static const struct LevelUpMove sFalinksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_BULK_UP), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(30, MOVE_REVERSAL), + LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(40, MOVE_NO_RETREAT), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(60, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_CHARGE), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_POISON_JAB), + LEVEL_UP_MOVE(50, MOVE_ZING_ZAP), + LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(60, MOVE_DISCHARGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +static const struct LevelUpMove sSnomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_INFESTATION), + LEVEL_UP_MOVE(12, MOVE_MIST), + LEVEL_UP_MOVE(16, MOVE_DEFOG), + LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(28, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_TAILWIND), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(18, MOVE_GRAVITY), + LEVEL_UP_MOVE(24, MOVE_STOMP), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(42, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +static const struct LevelUpMove sEiscueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_MIST), + LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(18, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(42, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(54, MOVE_SURF), + LEVEL_UP_MOVE(60, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(30, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_POWER_TRIP), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLATTER), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_TORMENT), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL), + LEVEL_UP_MOVE(60, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct LevelUpMove sCufantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_STRENGTH), + LEVEL_UP_MOVE(40, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(15, MOVE_BULLDOZE), + LEVEL_UP_MOVE(20, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(37, MOVE_STRENGTH), + LEVEL_UP_MOVE(44, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_PLUCK), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +static const struct LevelUpMove sDracovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(42, MOVE_STOMP), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +static const struct LevelUpMove sArctovishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_PROTECT), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND), + LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(77, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +static const struct LevelUpMove sDreepyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDrakloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDragapultLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_INFESTATION), + LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), + LEVEL_UP_MOVE(12, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_HEX), + LEVEL_UP_MOVE(24, MOVE_AGILITY), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_U_TURN), + LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +static const struct LevelUpMove sZacianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(11, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(33, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(44, MOVE_METAL_BURST), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(66, MOVE_MOONBLAST), + LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +static const struct LevelUpMove sEternatusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_TOXIC), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON), + LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(88, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +static const struct LevelUpMove sKubfuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 4, MOVE_ENDURE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(28, MOVE_DETECT), + LEVEL_UP_MOVE(32, MOVE_BULK_UP), + LEVEL_UP_MOVE(36, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_MIST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_TORMENT), + LEVEL_UP_MOVE(10, MOVE_FLATTER), + LEVEL_UP_MOVE(15, MOVE_TWISTER), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(40, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(65, MOVE_MOONBLAST), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; +#endif + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT + diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h deleted file mode 100644 index fdcb94757..000000000 --- a/src/data/pokemon/pokedex_text.h +++ /dev/null @@ -1,5 +0,0 @@ -#if defined(FIRERED) -#include "pokedex_text_fr.h" -#elif defined(LEAFGREEN) -#include "pokedex_text_lg.h" -#endif diff --git a/src/data/pokemon/pokedex_text_fr.h b/src/data/pokemon/pokedex_text_fr.h deleted file mode 100644 index c99e5fe8e..000000000 --- a/src/data/pokemon/pokedex_text_fr.h +++ /dev/null @@ -1,2720 +0,0 @@ -const u8 gDummyPokedexText[] = _( - "This is a newly discovered POKéMON. It is\n" - "currently under investigation. No detailed\n" - "information is available at this time."); - -const u8 gDummyPokedexTextUnused[] = _(""); - -const u8 gBulbasaurPokedexText[] = _( - "There is a plant seed on its back right\n" - "from the day this POKéMON is born.\n" - "The seed slowly grows larger."); - -const u8 gBulbasaurPokedexTextUnused[] = _(""); - -const u8 gIvysaurPokedexText[] = _( - "There is a plant bulb on its back.\n" - "When it absorbs nutrients, the bulb is said\n" - "to blossom into a large flower."); - -const u8 gIvysaurPokedexTextUnused[] = _(""); - -const u8 gVenusaurPokedexText[] = _( - "A bewitching aroma wafts from its flower.\n" - "The fragrance becalms those engaged in\n" - "a battle."); - -const u8 gVenusaurPokedexTextUnused[] = _(""); - -const u8 gCharmanderPokedexText[] = _( - "From the time it is born, a flame burns\n" - "at the tip of its tail. Its life would end\n" - "if the flame were to go out."); - -const u8 gCharmanderPokedexTextUnused[] = _(""); - -const u8 gCharmeleonPokedexText[] = _( - "It lashes about with its tail to knock\n" - "down its foe. It then tears up the fallen\n" - "opponent with sharp claws."); - -const u8 gCharmeleonPokedexTextUnused[] = _(""); - -const u8 gCharizardPokedexText[] = _( - "Its wings can carry this POKéMON close to\n" - "an altitude of 4,600 feet. It blows out\n" - "fire at very high temperatures."); - -const u8 gCharizardPokedexTextUnused[] = _(""); - -const u8 gSquirtlePokedexText[] = _( - "When it retracts its long neck into its\n" - "shell, it squirts out water with vigorous\n" - "force."); - -const u8 gSquirtlePokedexTextUnused[] = _(""); - -const u8 gWartortlePokedexText[] = _( - "This POKéMON is very popular as a pet.\n" - "Its fur-covered tail is a symbol of its\n" - "longevity."); - -const u8 gWartortlePokedexTextUnused[] = _(""); - -const u8 gBlastoisePokedexText[] = _( - "It crushes its foe under its heavy body\n" - "to cause fainting. In a pinch, it will\n" - "withdraw inside its shell."); - -const u8 gBlastoisePokedexTextUnused[] = _(""); - -const u8 gCaterpiePokedexText[] = _( - "It is covered with a green skin. When it\n" - "grows, it sheds the skin, covers itself\n" - "with silk, and becomes a cocoon."); - -const u8 gCaterpiePokedexTextUnused[] = _(""); - -const u8 gMetapodPokedexText[] = _( - "Even though it is encased in a sturdy\n" - "shell, the body inside is tender.\n" - "It can't withstand a harsh attack."); - -const u8 gMetapodPokedexTextUnused[] = _(""); - -const u8 gButterfreePokedexText[] = _( - "The wings are protected by rain-repellent\n" - "dust. As a result, this POKéMON can fly\n" - "about even in rain."); - -const u8 gButterfreePokedexTextUnused[] = _(""); - -const u8 gWeedlePokedexText[] = _( - "Often found in forests and grasslands.\n" - "It has a sharp, toxic barb of around two\n" - "inches on top of its head."); - -const u8 gWeedlePokedexTextUnused[] = _(""); - -const u8 gKakunaPokedexText[] = _( - "This POKéMON is in a temporary stage\n" - "while making its body. It is almost\n" - "completely unable to move on its own."); - -const u8 gKakunaPokedexTextUnused[] = _(""); - -const u8 gBeedrillPokedexText[] = _( - "May appear in a swarm. Flies at violent\n" - "speeds, all the while stabbing with the\n" - "toxic stinger on its rear."); - -const u8 gBeedrillPokedexTextUnused[] = _(""); - -const u8 gPidgeyPokedexText[] = _( - "Does not like to fight. It hides in\n" - "tall grass and so on, foraging for food\n" - "such as small bugs."); - -const u8 gPidgeyPokedexTextUnused[] = _(""); - -const u8 gPidgeottoPokedexText[] = _( - "The claws on its feet are well developed.\n" - "It can carry prey such as an EXEGGCUTE\n" - "to its nest over 60 miles away."); - -const u8 gPidgeottoPokedexTextUnused[] = _(""); - -const u8 gPidgeotPokedexText[] = _( - "It spreads its gorgeous wings widely to\n" - "intimidate enemies. It races through the\n" - "skies at Mach-2 speed."); - -const u8 gPidgeotPokedexTextUnused[] = _(""); - -const u8 gRattataPokedexText[] = _( - "Its fangs are long and very sharp.\n" - "They grow continuously, so it gnaws on\n" - "hard things to whittle them down."); - -const u8 gRattataPokedexTextUnused[] = _(""); - -const u8 gRaticatePokedexText[] = _( - "Its rear feet have three toes each.\n" - "They are webbed, enabling it to swim\n" - "across rivers."); - -const u8 gRaticatePokedexTextUnused[] = _(""); - -const u8 gSpearowPokedexText[] = _( - "It busily flits around here and there.\n" - "Even if it is frail, it can be a tough\n" - "foe that uses MIRROR MOVE."); - -const u8 gSpearowPokedexTextUnused[] = _(""); - -const u8 gFearowPokedexText[] = _( - "Its huge and magnificent wings can keep it\n" - "aloft in the sky. It can remain flying a\n" - "whole day without landing."); - -const u8 gFearowPokedexTextUnused[] = _(""); - -const u8 gEkansPokedexText[] = _( - "A very common sight in grassland, etc.\n" - "It flicks its tongue in and out to sense\n" - "danger in its surroundings."); - -const u8 gEkansPokedexTextUnused[] = _(""); - -const u8 gArbokPokedexText[] = _( - "The pattern on its belly appears to be a\n" - "frightening face. Weak foes will flee just\n" - "at the sight of the pattern."); - -const u8 gArbokPokedexTextUnused[] = _(""); - -// const u8 gPikachuPokedexText[] = _( -// "It has small electric sacs on both its\n" -// "cheeks. If threatened, it looses electric\n" -// "charges from the sacs."); - -// const u8 gPikachuPokedexTextUnused[] = _(""); - -const u8 gRaichuPokedexText[] = _( - "Its electric charges can reach even\n" - "100,000 volts. Careless contact can cause\n" - "even an Indian elephant to faint."); - -const u8 gRaichuPokedexTextUnused[] = _(""); - -const u8 gSandshrewPokedexText[] = _( - "It burrows and lives underground.\n" - "If threatened, it curls itself up into a\n" - "ball for protection."); - -const u8 gSandshrewPokedexTextUnused[] = _(""); - -const u8 gSandslashPokedexText[] = _( - "It is adept at attacking with the spines\n" - "on its back and its sharp claws while\n" - "quickly scurrying about."); - -const u8 gSandslashPokedexTextUnused[] = _(""); - -const u8 gNidoranFPokedexText[] = _( - "Though small, it must be treated with\n" - "caution because of its powerfully toxic\n" - "barbs. The female has smaller horns."); - -const u8 gNidoranFPokedexTextUnused[] = _(""); - -const u8 gNidorinaPokedexText[] = _( - "The female has a gentle temperament.\n" - "It emits ultrasonic cries that have the\n" - "power to befuddle foes."); - -const u8 gNidorinaPokedexTextUnused[] = _(""); - -const u8 gNidoqueenPokedexText[] = _( - "The body is covered by stiff, needle-\n" - "like scales. If it becomes excited,\n" - "the needles bristle outwards."); - -const u8 gNidoqueenPokedexTextUnused[] = _(""); - -const u8 gNidoranMPokedexText[] = _( - "Its large ears are flapped like wings\n" - "when it is listening to distant sounds.\n" - "It extends toxic barbs when angered."); - -const u8 gNidoranMPokedexTextUnused[] = _(""); - -const u8 gNidorinoPokedexText[] = _( - "It is easily angered. By swinging its well-\n" - "developed horn wildly, it can even punch\n" - "through diamond."); - -const u8 gNidorinoPokedexTextUnused[] = _(""); - -const u8 gNidokingPokedexText[] = _( - "It is recognized by its rock-hard hide\n" - "and its extended horn. Be careful with\n" - "the horn as it contains venom."); - -const u8 gNidokingPokedexTextUnused[] = _(""); - -const u8 gClefairyPokedexText[] = _( - "Its adorable appearance makes it popular\n" - "as a pet. However, it is rare and\n" - "difficult to find."); - -const u8 gClefairyPokedexTextUnused[] = _(""); - -const u8 gClefablePokedexText[] = _( - "It has an acute sense of hearing. It can\n" - "easily hear a pin being dropped nearly\n" - "1,100 yards away."); - -const u8 gClefablePokedexTextUnused[] = _(""); - -const u8 gVulpixPokedexText[] = _( - "While young, it has six gorgeous tails.\n" - "When it grows, several new tails are\n" - "sprouted."); - -const u8 gVulpixPokedexTextUnused[] = _(""); - -const u8 gNinetalesPokedexText[] = _( - "It has nine long tails and fur that \n" - "gleams gold. It is said to live for \n" - "1,000 years."); - -const u8 gNinetalesPokedexTextUnused[] = _(""); - -const u8 gJigglypuffPokedexText[] = _( - "It captivates foes with its huge, round\n" - "eyes, then lulls them to sleep by singing\n" - "a soothing melody."); - -const u8 gJigglypuffPokedexTextUnused[] = _(""); - -const u8 gWigglytuffPokedexText[] = _( - "Its fur is extremely fine, dense, and\n" - "supple. The exquisitely pleasant fur\n" - "conveys an image of luxury."); - -const u8 gWigglytuffPokedexTextUnused[] = _(""); - -const u8 gZubatPokedexText[] = _( - "It has no eyes. Instead, it relies on\n" - "its ultrasonic cries for echo location to\n" - "flit about in darkness."); - -const u8 gZubatPokedexTextUnused[] = _(""); - -const u8 gGolbatPokedexText[] = _( - "It clamps down on its prey with needle-\n" - "sharp fangs and drains over 10 ounces of\n" - "blood in one gulp."); - -const u8 gGolbatPokedexTextUnused[] = _(""); - -const u8 gOddishPokedexText[] = _( - "Its scientific name is “Oddium Wanderus.”\n" - "At night, it is said to walk nearly 1,000\n" - "feet on its two roots."); - -const u8 gOddishPokedexTextUnused[] = _(""); - -const u8 gGloomPokedexText[] = _( - "Its pistils exude an incredibly foul odor.\n" - "The horrid stench can cause fainting at a\n" - "distance of 1.25 miles."); - -const u8 gGloomPokedexTextUnused[] = _(""); - -const u8 gVileplumePokedexText[] = _( - "Its petals are the largest in the world.\n" - "It fiendishly scatters allergy-causing\n" - "pollen from its petals."); - -const u8 gVileplumePokedexTextUnused[] = _(""); - -const u8 gParasPokedexText[] = _( - "Growing out of the bug's back are\n" - "mushrooms called tochukaso. The mushrooms\n" - "grow with the bug host."); - -const u8 gParasPokedexTextUnused[] = _(""); - -const u8 gParasectPokedexText[] = _( - "It scatters toxic spores from the\n" - "mushroom cap. In China, the spores are\n" - "used as herbal medicine."); - -const u8 gParasectPokedexTextUnused[] = _(""); - -const u8 gVenonatPokedexText[] = _( - "Its eyes act as radar, enabling it to be\n" - "active in darkness. The eyes can also\n" - "shoot powerful beams."); - -const u8 gVenonatPokedexTextUnused[] = _(""); - -const u8 gVenomothPokedexText[] = _( - "The wings are covered with dustlike\n" - "scales. Every time it flaps its wings, it\n" - "looses highly toxic dust."); - -const u8 gVenomothPokedexTextUnused[] = _(""); - -const u8 gDiglettPokedexText[] = _( - "It burrows through the ground at a\n" - "shallow depth. It leaves raised earth in\n" - "its wake, making it easy to spot."); - -const u8 gDiglettPokedexTextUnused[] = _(""); - -const u8 gDugtrioPokedexText[] = _( - "In battle, it digs through the ground and\n" - "strikes the unsuspecting foe from an\n" - "unexpected direction."); - -const u8 gDugtrioPokedexTextUnused[] = _(""); - -const u8 gMeowthPokedexText[] = _( - "All it does is sleep during the daytime.\n" - "At night, it patrols its territory with its\n" - "eyes aglow."); - -const u8 gMeowthPokedexTextUnused[] = _(""); - -const u8 gPersianPokedexText[] = _( - "Has a vicious temperament. Beware if it\n" - "raises its tail straight up. It is a signal\n" - "that it is about to pounce and bite."); - -const u8 gPersianPokedexTextUnused[] = _(""); - -const u8 gPsyduckPokedexText[] = _( - "It is constantly wracked by a headache.\n" - "When the headache turns intense, it begins\n" - "using mysterious powers."); - -const u8 gPsyduckPokedexTextUnused[] = _(""); - -const u8 gGolduckPokedexText[] = _( - "The forelegs are webbed, helping to make\n" - "it an adept swimmer. It can be seen\n" - "swimming elegantly in lakes, etc."); - -const u8 gGolduckPokedexTextUnused[] = _(""); - -const u8 gMankeyPokedexText[] = _( - "Light and agile on its feet, and ferocious\n" - "in temperament. When angered, it flies into\n" - "an uncontrollable frenzy."); - -const u8 gMankeyPokedexTextUnused[] = _(""); - -const u8 gPrimeapePokedexText[] = _( - "It is always outrageously furious. If it\n" - "gives chase, it will tenaciously track the\n" - "target no matter how far."); - -const u8 gPrimeapePokedexTextUnused[] = _(""); - -const u8 gGrowlithePokedexText[] = _( - "Very friendly and faithful to people.\n" - "It will try to repel enemies by barking\n" - "and biting."); - -const u8 gGrowlithePokedexTextUnused[] = _(""); - -const u8 gArcaninePokedexText[] = _( - "A POKéMON that is described in Chinese\n" - "legends. It is said to race at an\n" - "unbelievable speed."); - -const u8 gArcaninePokedexTextUnused[] = _(""); - -const u8 gPoliwagPokedexText[] = _( - "Its slick black skin is thin and damp.\n" - "A part of its internal organs can be seen\n" - "through the skin as a spiral pattern."); - -const u8 gPoliwagPokedexTextUnused[] = _(""); - -const u8 gPoliwhirlPokedexText[] = _( - "Its two legs are well developed.\n" - "Even though it can live on the ground,\n" - "it prefers living in water."); - -const u8 gPoliwhirlPokedexTextUnused[] = _(""); - -const u8 gPoliwrathPokedexText[] = _( - "An adept swimmer, it knows the front\n" - "crawl, butterfly, and more. It is faster\n" - "than the best human swimmers."); - -const u8 gPoliwrathPokedexTextUnused[] = _(""); - -const u8 gAbraPokedexText[] = _( - "It sleeps for 18 hours a day. It uses a\n" - "variety of extrasensory powers even\n" - "while asleep."); - -const u8 gAbraPokedexTextUnused[] = _(""); - -const u8 gKadabraPokedexText[] = _( - "It happened one morning - a boy with\n" - "extrasensory powers awoke in bed\n" - "transformed into KADABRA."); - -const u8 gKadabraPokedexTextUnused[] = _(""); - -const u8 gAlakazamPokedexText[] = _( - "It does not like physical attacks very \n" - "much. Instead, it freely uses extra-\n" - "sensory powers to defeat foes."); - -const u8 gAlakazamPokedexTextUnused[] = _(""); - -const u8 gMachopPokedexText[] = _( - "Its whole body is composed of muscles.\n" - "Even though it's the size of a human\n" - "child, it can hurl 100 grown-ups."); - -const u8 gMachopPokedexTextUnused[] = _(""); - -const u8 gMachokePokedexText[] = _( - "Its formidable body never gets tired.\n" - "It helps people by doing work such as\n" - "the moving of heavy goods."); - -const u8 gMachokePokedexTextUnused[] = _(""); - -const u8 gMachampPokedexText[] = _( - "Its four ruggedly developed arms can\n" - "launch a flurry of 1,000 punches in just\n" - "two seconds."); - -const u8 gMachampPokedexTextUnused[] = _(""); - -const u8 gBellsproutPokedexText[] = _( - "Its bud looks like a human face. Because\n" - "of the bud, it is rumored to be a type of\n" - "legendary mandrake plant."); - -const u8 gBellsproutPokedexTextUnused[] = _(""); - -const u8 gWeepinbellPokedexText[] = _( - "The leafy parts act as cutters for\n" - "slashing foes. It spits a fluid that\n" - "dissolves everything."); - -const u8 gWeepinbellPokedexTextUnused[] = _(""); - -const u8 gVictreebelPokedexText[] = _( - "Lures prey into its mouth with a honeylike\n" - "aroma. The helpless prey is melted with\n" - "a dissolving fluid."); - -const u8 gVictreebelPokedexTextUnused[] = _(""); - -const u8 gTentacoolPokedexText[] = _( - "Its eyes are as transparent as crystals.\n" - "From them, it shoots mysterious\n" - "beams of light."); - -const u8 gTentacoolPokedexTextUnused[] = _(""); - -const u8 gTentacruelPokedexText[] = _( - "It has 80 tentacles that move about\n" - "freely. They can sting, causing poisoning\n" - "and sharp, stabbing pain."); - -const u8 gTentacruelPokedexTextUnused[] = _(""); - -const u8 gGeodudePokedexText[] = _( - "Its round form makes it easy to pick up.\n" - "Some people have used them to hurl\n" - "at each other in a snowball fight."); - -const u8 gGeodudePokedexTextUnused[] = _(""); - -const u8 gGravelerPokedexText[] = _( - "Be careful while hiking on mountain trails.\n" - "GRAVELER may come rolling down the path\n" - "without slowing."); - -const u8 gGravelerPokedexTextUnused[] = _(""); - -const u8 gGolemPokedexText[] = _( - "It is enclosed in a hard shell that is as\n" - "rugged as slabs of rock. It sheds skin\n" - "once a year to grow larger."); - -const u8 gGolemPokedexTextUnused[] = _(""); - -const u8 gPonytaPokedexText[] = _( - "Its body is light, and its legs are\n" - "incredibly powerful. It can clear\n" - "Ayers Rock in one leap."); - -const u8 gPonytaPokedexTextUnused[] = _(""); - -const u8 gRapidashPokedexText[] = _( - "It can gallop at a top speed of 150\n" - "miles per hour. It can race as fast as a\n" - "bullet train while ablaze."); - -const u8 gRapidashPokedexTextUnused[] = _(""); - -const u8 gSlowpokePokedexText[] = _( - "It is always vacantly lost in thought, but\n" - "no one knows what it is thinking about.\n" - "It is good at fishing with its tail."); - -const u8 gSlowpokePokedexTextUnused[] = _(""); - -const u8 gSlowbroPokedexText[] = _( - "When a SLOWPOKE went hunting in the sea,\n" - "its tail was bitten by a SHELLDER. That\n" - "made it evolve into SLOWBRO."); - -const u8 gSlowbroPokedexTextUnused[] = _(""); - -const u8 gMagnemitePokedexText[] = _( - "It moves while constantly hovering.\n" - "It discharges THUNDER WAVE and so on\n" - "from the units at its sides."); - -const u8 gMagnemitePokedexTextUnused[] = _(""); - -const u8 gMagnetonPokedexText[] = _( - "A linked cluster formed of several\n" - "MAGNEMITE. It discharges powerful\n" - "magnetic waves at high voltage."); - -const u8 gMagnetonPokedexTextUnused[] = _(""); - -const u8 gFarfetchdPokedexText[] = _( - "It always walks about with a plant stalk\n" - "clamped in its beak. The stalk is used for\n" - "building its nest."); - -const u8 gFarfetchdPokedexTextUnused[] = _(""); - -const u8 gDoduoPokedexText[] = _( - "A two-headed POKéMON that was discovered\n" - "as a sudden mutation. It runs at a pace\n" - "of over 60 miles per hour."); - -const u8 gDoduoPokedexTextUnused[] = _(""); - -const u8 gDodrioPokedexText[] = _( - "An odd species that is rarely found.\n" - "The three heads respectively represent\n" - "joy, sadness, and anger."); - -const u8 gDodrioPokedexTextUnused[] = _(""); - -const u8 gSeelPokedexText[] = _( - "Covered with light blue fur, its hide is\n" - "thick and tough. It is active in bitter\n" - "cold of minus 40 degrees Fahrenheit."); - -const u8 gSeelPokedexTextUnused[] = _(""); - -const u8 gDewgongPokedexText[] = _( - "Its body is covered with a pure white\n" - "fur. The colder the weather, the more\n" - "active it becomes."); - -const u8 gDewgongPokedexTextUnused[] = _(""); - -const u8 gGrimerPokedexText[] = _( - "Sludge exposed to X rays from the moon\n" - "transformed into GRIMER. It loves feeding\n" - "on filthy things."); - -const u8 gGrimerPokedexTextUnused[] = _(""); - -const u8 gMukPokedexText[] = _( - "It is usually undetectable because it\n" - "blends in with the ground. Touching it can\n" - "cause terrible poisoning."); - -const u8 gMukPokedexTextUnused[] = _(""); - -const u8 gShellderPokedexText[] = _( - "It is encased in a shell that is harder\n" - "than diamond. Inside, however, it is\n" - "surprisingly tender."); - -const u8 gShellderPokedexTextUnused[] = _(""); - -const u8 gCloysterPokedexText[] = _( - "Its shell is extremely hard. It cannot be\n" - "shattered, even with a bomb. The shell\n" - "opens only when it is attacking."); - -const u8 gCloysterPokedexTextUnused[] = _(""); - -const u8 gGastlyPokedexText[] = _( - "A being that exists as a thin gas. It can\n" - "topple an Indian elephant by enveloping\n" - "the prey in two seconds."); - -const u8 gGastlyPokedexTextUnused[] = _(""); - -const u8 gHaunterPokedexText[] = _( - "If you get the feeling of being watched\n" - "in darkness when nobody is around,\n" - "HAUNTER is there."); - -const u8 gHaunterPokedexTextUnused[] = _(""); - -const u8 gGengarPokedexText[] = _( - "It is said to emerge from darkness to\n" - "steal the lives of those who become lost\n" - "in mountains."); - -const u8 gGengarPokedexTextUnused[] = _(""); - -const u8 gOnixPokedexText[] = _( - "It usually lives underground. It searches\n" - "for food while boring its way through the\n" - "ground at 50 miles per hour."); - -const u8 gOnixPokedexTextUnused[] = _(""); - -const u8 gDrowzeePokedexText[] = _( - "A descendent of the legendary animal\n" - "baku, which is said to eat dreams. It is\n" - "skilled at hypnotism."); - -const u8 gDrowzeePokedexTextUnused[] = _(""); - -const u8 gHypnoPokedexText[] = _( - "It carries a pendulum-like device. There\n" - "once was an incident in which it took \n" - "away a child it hypnotized."); - -const u8 gHypnoPokedexTextUnused[] = _(""); - -const u8 gKrabbyPokedexText[] = _( - "It can be found near the sea. The large\n" - "pincers grow back if they are torn out of\n" - "their sockets."); - -const u8 gKrabbyPokedexTextUnused[] = _(""); - -const u8 gKinglerPokedexText[] = _( - "Its large and hard pincer has 10,000-\n" - "horsepower strength. However, being so\n" - "big, it is unwieldy to move."); - -const u8 gKinglerPokedexTextUnused[] = _(""); - -const u8 gVoltorbPokedexText[] = _( - "A life-form whose identity is unknown.\n" - "It is said to SCREECH or suddenly\n" - "SELFDESTRUCT."); - -const u8 gVoltorbPokedexTextUnused[] = _(""); - -const u8 gElectrodePokedexText[] = _( - "It explodes in response to even minor\n" - "stimuli. It is feared, with the nickname\n" - "of “The Bomb Ball.”"); - -const u8 gElectrodePokedexTextUnused[] = _(""); - -const u8 gExeggcutePokedexText[] = _( - "Even though it appears to be eggs of\n" - "some sort, it was discovered to be a life-\n" - "form more like plant seeds."); - -const u8 gExeggcutePokedexTextUnused[] = _(""); - -const u8 gExeggutorPokedexText[] = _( - "It is called “The Walking Tropical\n" - "Rainforest.” Each of the nuts has\n" - "a face and a will of its own."); - -const u8 gExeggutorPokedexTextUnused[] = _(""); - -const u8 gCubonePokedexText[] = _( - "It wears the skull of its dead mother on\n" - "its head. When it becomes lonesome, it is\n" - "said to cry loudly."); - -const u8 gCubonePokedexTextUnused[] = _(""); - -const u8 gMarowakPokedexText[] = _( - "It is small and was originally very weak.\n" - "Its temperament turned ferocious when it\n" - "began using bones."); - -const u8 gMarowakPokedexTextUnused[] = _(""); - -const u8 gHitmonleePokedexText[] = _( - "The legs freely contract and stretch.\n" - "The stretchy legs allow it to hit a\n" - "distant foe with a rising kick."); - -const u8 gHitmonleePokedexTextUnused[] = _(""); - -const u8 gHitmonchanPokedexText[] = _( - "The spirit of a pro boxer has infused this\n" - "POKéMON. It throws punches that are\n" - "faster than a bullet train."); - -const u8 gHitmonchanPokedexTextUnused[] = _(""); - -const u8 gLickitungPokedexText[] = _( - "Its tongue is twice the length of its\n" - "body. It can be moved like an arm for\n" - "grabbing food and attacking."); - -const u8 gLickitungPokedexTextUnused[] = _(""); - -const u8 gKoffingPokedexText[] = _( - "Its thin, balloon-like body is inflated by\n" - "horribly toxic gases. It reeks when it is\n" - "nearby."); - -const u8 gKoffingPokedexTextUnused[] = _(""); - -const u8 gWeezingPokedexText[] = _( - "Very rarely, a sudden mutation can result\n" - "in two small KOFFING twins becoming\n" - "conjoined as a WEEZING."); - -const u8 gWeezingPokedexTextUnused[] = _(""); - -const u8 gRhyhornPokedexText[] = _( - "Strong, but not too bright, this POKéMON\n" - "can shatter even a skyscraper with its\n" - "charging TACKLES."); - -const u8 gRhyhornPokedexTextUnused[] = _(""); - -const u8 gRhydonPokedexText[] = _( - "It begins walking on its hind legs after\n" - "evolution. It can punch holes through\n" - "boulders with its horn."); - -const u8 gRhydonPokedexTextUnused[] = _(""); - -const u8 gChanseyPokedexText[] = _( - "It lays several eggs a day. The eggs are\n" - "apparently rich in nutrients and extremely\n" - "delicious."); - -const u8 gChanseyPokedexTextUnused[] = _(""); - -const u8 gTangelaPokedexText[] = _( - "Blue plant vines cloak the POKéMON's\n" - "identity in a tangled mass. It entangles\n" - "anything that gets close."); - -const u8 gTangelaPokedexTextUnused[] = _(""); - -const u8 gKangaskhanPokedexText[] = _( - "The female raises its offspring in a pouch\n" - "on its belly. It is skilled at attacking\n" - "using COMET PUNCH."); - -const u8 gKangaskhanPokedexTextUnused[] = _(""); - -const u8 gHorseaPokedexText[] = _( - "It maintains balance using its tail, which\n" - "is wound up like a coil. It may spray ink\n" - "from its mouth."); - -const u8 gHorseaPokedexTextUnused[] = _(""); - -const u8 gSeadraPokedexText[] = _( - "Its body bristles with sharp spikes.\n" - "Carelessly trying to touch it could cause\n" - "fainting from the spikes."); - -const u8 gSeadraPokedexTextUnused[] = _(""); - -const u8 gGoldeenPokedexText[] = _( - "Its dorsal and pectoral fins are strongly\n" - "developed like muscles. It can swim at a\n" - "speed of five knots."); - -const u8 gGoldeenPokedexTextUnused[] = _(""); - -const u8 gSeakingPokedexText[] = _( - "The horn on its head is sharp like a\n" - "drill. It bores a hole in a boulder to\n" - "make its nest."); - -const u8 gSeakingPokedexTextUnused[] = _(""); - -const u8 gStaryuPokedexText[] = _( - "It appears in large numbers by seashores.\n" - "At night, its central core flashes with a\n" - "red light."); - -const u8 gStaryuPokedexTextUnused[] = _(""); - -const u8 gStarmiePokedexText[] = _( - "This POKéMON has a geometric body.\n" - "Because of its body, the locals suspect\n" - "that it is an alien creature."); - -const u8 gStarmiePokedexTextUnused[] = _(""); - -const u8 gMrmimePokedexText[] = _( - "It is adept at conning people. It is said\n" - "to be able to create walls out of thin\n" - "air by miming."); - -const u8 gMrmimePokedexTextUnused[] = _(""); - -const u8 gScytherPokedexText[] = _( - "It tears and shreds prey with its wickedly\n" - "sharp scythes. It very rarely spreads its\n" - "wings to fly."); - -const u8 gScytherPokedexTextUnused[] = _(""); - -const u8 gJynxPokedexText[] = _( - "It speaks using a language that sounds\n" - "human. Research is under way to determine\n" - "what is being said."); - -const u8 gJynxPokedexTextUnused[] = _(""); - -const u8 gElectabuzzPokedexText[] = _( - "It loves to feed on strong electricity.\n" - "It occasionally appears around large\n" - "power plants and so on."); - -const u8 gElectabuzzPokedexTextUnused[] = _(""); - -const u8 gMagmarPokedexText[] = _( - "Found near the mouth of a volcano.\n" - "This fire-breather's body temperature is\n" - "nearly 2,200 degrees Fahrenheit."); - -const u8 gMagmarPokedexTextUnused[] = _(""); - -const u8 gPinsirPokedexText[] = _( - "Its two long pincer horns are powerful.\n" - "Once they grip an enemy, they won't\n" - "release until the foe is torn."); - -const u8 gPinsirPokedexTextUnused[] = _(""); - -const u8 gTaurosPokedexText[] = _( - "When it is about to TACKLE, it whips\n" - "its body repeatedly with its three\n" - "long tails."); - -const u8 gTaurosPokedexTextUnused[] = _(""); - -const u8 gMagikarpPokedexText[] = _( - "It is virtually worthless in terms of both\n" - "power and speed. It is the most weak and\n" - "pathetic POKéMON in the world."); - -const u8 gMagikarpPokedexTextUnused[] = _(""); - -const u8 gGyaradosPokedexText[] = _( - "It has an extremely aggressive nature.\n" - "The HYPER BEAM it shoots from its mouth\n" - "totally incinerates all targets."); - -const u8 gGyaradosPokedexTextUnused[] = _(""); - -const u8 gLaprasPokedexText[] = _( - "Its high intelligence enables it to\n" - "understand human speech. It likes to ferry\n" - "people on its back."); - -const u8 gLaprasPokedexTextUnused[] = _(""); - -const u8 gDittoPokedexText[] = _( - "It can freely recombine its own cellular\n" - "structure to transform into other life-\n" - "forms."); - -const u8 gDittoPokedexTextUnused[] = _(""); - -const u8 gEeveePokedexText[] = _( - "An extremely rare POKéMON that may\n" - "evolve in a number of different ways\n" - "depending on stimuli."); - -const u8 gEeveePokedexTextUnused[] = _(""); - -const u8 gVaporeonPokedexText[] = _( - "Its body's cellular structure is similar to\n" - "the molecular composition of water.\n" - "It can melt invisibly in water."); - -const u8 gVaporeonPokedexTextUnused[] = _(""); - -const u8 gJolteonPokedexText[] = _( - "If it is angered or startled, the fur all\n" - "over its body bristles like sharp needles\n" - "that pierce foes."); - -const u8 gJolteonPokedexTextUnused[] = _(""); - -const u8 gFlareonPokedexText[] = _( - "It has a flame bag inside its body. After\n" - "inhaling deeply, it blows out flames of\n" - "nearly 3,100 degrees Fahrenheit."); - -const u8 gFlareonPokedexTextUnused[] = _(""); - -const u8 gPorygonPokedexText[] = _( - "Using the most advanced technologies,\n" - "scientists finally succeeded in making the\n" - "first artificial POKéMON."); - -const u8 gPorygonPokedexTextUnused[] = _(""); - -const u8 gOmanytePokedexText[] = _( - "A prehistoric POKéMON that lived in the\n" - "primordial sea, it swims by twisting its\n" - "10 tentacles about."); - -const u8 gOmanytePokedexTextUnused[] = _(""); - -const u8 gOmastarPokedexText[] = _( - "Its tentacles are highly developed as if\n" - "they are hands and feet. As soon as it\n" - "ensnares prey, it bites."); - -const u8 gOmastarPokedexTextUnused[] = _(""); - -const u8 gKabutoPokedexText[] = _( - "This POKéMON was regenerated from the\n" - "fossil of an ancient creature. It protects\n" - "itself with a hard shell."); - -const u8 gKabutoPokedexTextUnused[] = _(""); - -const u8 gKabutopsPokedexText[] = _( - "It swims freely through water. It catches\n" - "prey with its scythe-like arms and drains\n" - "the victim's fluids."); - -const u8 gKabutopsPokedexTextUnused[] = _(""); - -const u8 gAerodactylPokedexText[] = _( - "It was regenerated from a dinosaur's\n" - "genetic matter that was found in amber.\n" - "It flies with high-pitched cries."); - -const u8 gAerodactylPokedexTextUnused[] = _(""); - -const u8 gSnorlaxPokedexText[] = _( - "It is not satisfied unless it eats over 880\n" - "pounds of food every day. When it is done\n" - "eating, it goes promptly to sleep."); - -const u8 gSnorlaxPokedexTextUnused[] = _(""); - -const u8 gArticunoPokedexText[] = _( - "One of the legendary bird POKéMON.\n" - "With its long tail trailing behind, its\n" - "flying form is magnificent."); - -const u8 gArticunoPokedexTextUnused[] = _(""); - -const u8 gZapdosPokedexText[] = _( - "One of the legendary bird POKéMON.\n" - "While it is flying, it makes crackling and\n" - "snapping sounds."); - -const u8 gZapdosPokedexTextUnused[] = _(""); - -const u8 gMoltresPokedexText[] = _( - "One of the legendary bird POKéMON.\n" - "Those seeing it are overwhelmed by its\n" - "orange wings that seem to be on fire."); - -const u8 gMoltresPokedexTextUnused[] = _(""); - -const u8 gDratiniPokedexText[] = _( - "Even the young can exceed 6.5 feet in\n" - "length. It grows larger by repeatedly\n" - "shedding skin."); - -const u8 gDratiniPokedexTextUnused[] = _(""); - -const u8 gDragonairPokedexText[] = _( - "It is said to live in seas and lakes.\n" - "Even though it has no wings, it has been\n" - "seen flying occasionally."); - -const u8 gDragonairPokedexTextUnused[] = _(""); - -const u8 gDragonitePokedexText[] = _( - "It can fly in spite of its big and bulky\n" - "physique. It circles the globe in just\n" - "16 hours."); - -const u8 gDragonitePokedexTextUnused[] = _(""); - -const u8 gMewtwoPokedexText[] = _( - "A POKéMON whose genetic code was\n" - "repeatedly recombined for research.\n" - "It turned vicious as a result."); - -const u8 gMewtwoPokedexTextUnused[] = _(""); - -const u8 gMewPokedexText[] = _( - "A POKéMON of South America that was\n" - "thought to have been extinct. It is very\n" - "intelligent and learns any move."); - -const u8 gMewPokedexTextUnused[] = _(""); - -const u8 gChikoritaPokedexText[] = _( -#if REVISION == 0 - "Its pleasantly aromatic leaves have the\n" - #else - "Its pleasantly aromatic leaf has the\n" - #endif - "ability to check the humidity and\n" - "temperature." -); - -const u8 gChikoritaPokedexTextUnused[] = _(""); - -const u8 gBayleefPokedexText[] = _( - "A spicy aroma emanates from around its\n" - "neck. The aroma acts as a stimulant to\n" - "restore health."); - -const u8 gBayleefPokedexTextUnused[] = _(""); - -const u8 gMeganiumPokedexText[] = _( - "MEGANIUM's breath has the power to revive\n" - "dead grass and plants. It can make them\n" - "healthy again."); - -const u8 gMeganiumPokedexTextUnused[] = _(""); - -const u8 gCyndaquilPokedexText[] = _( - "It usually stays hunched over. If it is\n" - "angry or surprised, it shoots flames out\n" - "of its back."); - -const u8 gCyndaquilPokedexTextUnused[] = _(""); - -const u8 gQuilavaPokedexText[] = _( - "This POKéMON is fully covered by\n" - "nonflammable fur. It can withstand any\n" - "kind of fire attack."); - -const u8 gQuilavaPokedexTextUnused[] = _(""); - -const u8 gTyphlosionPokedexText[] = _( - "It has a secret, devastating move. It\n" - "rubs its blazing fur together to cause\n" - "huge explosions."); - -const u8 gTyphlosionPokedexTextUnused[] = _(""); - -const u8 gTotodilePokedexText[] = _( - "It is small but rough and tough. It won't\n" - "hesitate to take a bite out of anything\n" - "that moves."); - -const u8 gTotodilePokedexTextUnused[] = _(""); - -const u8 gCroconawPokedexText[] = _( - "It opens its huge jaws wide when\n" - "attacking. If it loses any fangs while\n" - "biting, they grow back in."); - -const u8 gCroconawPokedexTextUnused[] = _(""); - -const u8 gFeraligatrPokedexText[] = _( - "It is hard for it to support its own\n" - "weight out of water, so it gets down on\n" - "all fours. But it moves fast."); - -const u8 gFeraligatrPokedexTextUnused[] = _(""); - -const u8 gSentretPokedexText[] = _( - "It stands on its tail so it can see a long\n" - "way. If it spots an enemy, it cries loudly\n" - "to warn its kind."); - -const u8 gSentretPokedexTextUnused[] = _(""); - -const u8 gFurretPokedexText[] = _( - "There is no telling where its tail begins.\n" - "Despite its short legs, it is quick at\n" - "hunting RATTATA."); - -const u8 gFurretPokedexTextUnused[] = _(""); - -const u8 gHoothootPokedexText[] = _( - "It has a perfect sense of time. Whatever\n" - "happens, it keeps rhythm by precisely\n" - "tilting its head in time."); - -const u8 gHoothootPokedexTextUnused[] = _(""); - -const u8 gNoctowlPokedexText[] = _( - "When it needs to think, it rotates its head\n" - "180 degrees to sharpen its intellectual\n" - "power."); - -const u8 gNoctowlPokedexTextUnused[] = _(""); - -const u8 gLedybaPokedexText[] = _( - "When the weather turns cold, numerous\n" - "LEDYBA gather from everywhere to cluster\n" - "and keep each other warm."); - -const u8 gLedybaPokedexTextUnused[] = _(""); - -const u8 gLedianPokedexText[] = _( - "The star patterns on its back grow larger\n" - "or smaller depending on the number of\n" - "stars in the night sky."); - -const u8 gLedianPokedexTextUnused[] = _(""); - -const u8 gSpinarakPokedexText[] = _( - "It spins a web using fine--but durable--\n" - "thread. It then waits patiently for prey\n" - "to be trapped."); - -const u8 gSpinarakPokedexTextUnused[] = _(""); - -const u8 gAriadosPokedexText[] = _( - "A single strand of a special string is\n" - "endlessly spun out of its rear. The string\n" - "leads back to its nest."); - -const u8 gAriadosPokedexTextUnused[] = _(""); - -const u8 gCrobatPokedexText[] = _( - "The development of wings on its legs\n" - "enables it to fly fast but also makes it\n" - "tough to stop and rest."); - -const u8 gCrobatPokedexTextUnused[] = _(""); - -const u8 gChinchouPokedexText[] = _( - "On the dark ocean floor, its only means\n" - "of communication is its constantly\n" - "flashing lights."); - -const u8 gChinchouPokedexTextUnused[] = _(""); - -const u8 gLanturnPokedexText[] = _( - "It blinds prey with an intense burst of\n" - "light, then swallows the immobilized prey\n" - "in a single gulp."); - -const u8 gLanturnPokedexTextUnused[] = _(""); - -// const u8 gPichuPokedexText[] = _( -// "Despite its small size, it can zap even\n" -// "adult humans. However, if it does so, it\n" -// "also surprises itself."); - -// const u8 gPichuPokedexTextUnused[] = _(""); - -const u8 gCleffaPokedexText[] = _( - "When numerous meteors illuminate the\n" - "night sky, sightings of CLEFFA strangely\n" - "increase."); - -const u8 gCleffaPokedexTextUnused[] = _(""); - -const u8 gIgglybuffPokedexText[] = _( - "Its extremely flexible and elastic body\n" - "makes it bounce continuously--anytime,\n" - "anywhere."); - -const u8 gIgglybuffPokedexTextUnused[] = _(""); - -const u8 gTogepiPokedexText[] = _( - "A proverb claims that happiness will come\n" - "to anyone who can make a sleeping TOGEPI\n" - "stand up."); - -const u8 gTogepiPokedexTextUnused[] = _(""); - -const u8 gTogeticPokedexText[] = _( - "It grows dispirited if it is not with kind\n" - "people. It can float in midair without\n" - "moving its wings."); - -const u8 gTogeticPokedexTextUnused[] = _(""); - -const u8 gNatuPokedexText[] = _( - "It usually forages for food on the ground\n" - "but may, on rare occasions, hop onto\n" - "branches to peck at shoots."); - -const u8 gNatuPokedexTextUnused[] = _(""); - -const u8 gXatuPokedexText[] = _( - "In South America, it is said that its right\n" - "eye sees the future and its left eye\n" - "views the past."); - -const u8 gXatuPokedexTextUnused[] = _(""); - -const u8 gMareepPokedexText[] = _( - "Its fleece grows continually. In the\n" - "summer, the fleece is fully shed, but it\n" - "grows back in a week."); - -const u8 gMareepPokedexTextUnused[] = _(""); - -const u8 gFlaaffyPokedexText[] = _( - "Its fluffy fleece easily stores\n" - "electricity. Its rubbery hide keeps it\n" - "from being electrocuted."); - -const u8 gFlaaffyPokedexTextUnused[] = _(""); - -const u8 gAmpharosPokedexText[] = _( - "The bright light on its tail can be seen\n" - "far away. It has been treasured since\n" - "ancient times as a beacon."); - -const u8 gAmpharosPokedexTextUnused[] = _(""); - -const u8 gBellossomPokedexText[] = _( - "Plentiful in the tropics. When it dances,\n" - "its petals rub together and make a\n" - "pleasant ringing sound."); - -const u8 gBellossomPokedexTextUnused[] = _(""); - -const u8 gMarillPokedexText[] = _( - "The end of its tail serves as a buoy that\n" - "keeps it from drowning, even in a vicious\n" - "current."); - -const u8 gMarillPokedexTextUnused[] = _(""); - -const u8 gAzumarillPokedexText[] = _( - "When it plays in water, it rolls up its\n" - "elongated ears to prevent their insides\n" - "from getting wet."); - -const u8 gAzumarillPokedexTextUnused[] = _(""); - -const u8 gSudowoodoPokedexText[] = _( - "It disguises itself as a tree to avoid\n" - "attack. It hates water, so it will\n" - "disappear if it starts raining."); - -const u8 gSudowoodoPokedexTextUnused[] = _(""); - -const u8 gPolitoedPokedexText[] = _( - "Whenever three or more of these get\n" - "together, they sing in a loud voice that\n" - "sounds like bellowing."); - -const u8 gPolitoedPokedexTextUnused[] = _(""); - -const u8 gHoppipPokedexText[] = _( - "Its body is so light, it must grip the\n" - "ground firmly with its feet to keep from\n" - "being blown away."); - -const u8 gHoppipPokedexTextUnused[] = _(""); - -const u8 gSkiploomPokedexText[] = _( - "It spreads its petals to absorb sunlight.\n" - "It also floats in the air to get closer to\n" - "the sun."); - -const u8 gSkiploomPokedexTextUnused[] = _(""); - -const u8 gJumpluffPokedexText[] = _( - "It drifts on seasonal winds and spreads\n" - "its cotton-like spores all over the world \n" - "to make more offspring."); - -const u8 gJumpluffPokedexTextUnused[] = _(""); - -const u8 gAipomPokedexText[] = _( - "It lives atop tall trees. When leaping\n" - "from branch to branch, it deftly uses its\n" - "tail for balance."); - -const u8 gAipomPokedexTextUnused[] = _(""); - -const u8 gSunkernPokedexText[] = _( - "It lives by drinking only dewdrops from\n" - "under the leaves of plants. It is said\n" - "that it eats nothing else."); - -const u8 gSunkernPokedexTextUnused[] = _(""); - -const u8 gSunfloraPokedexText[] = _( - "In the daytime, it rushes about in a\n" - "hectic manner, but it comes to a complete\n" - "stop when the sun sets."); - -const u8 gSunfloraPokedexTextUnused[] = _(""); - -const u8 gYanmaPokedexText[] = _( - "Its large eyes can scan 360 degrees.\n" - "It looks in all directions to seek out\n" - "insects as its prey."); - -const u8 gYanmaPokedexTextUnused[] = _(""); - -const u8 gWooperPokedexText[] = _( - "When it walks around on the ground,\n" - "it coats its body with a slimy, poisonous\n" - "film."); - -const u8 gWooperPokedexTextUnused[] = _(""); - -const u8 gQuagsirePokedexText[] = _( - "Due to its relaxed and carefree attitude,\n" - "it often bumps its head on boulders and\n" - "boat hulls as it swims."); - -const u8 gQuagsirePokedexTextUnused[] = _(""); - -const u8 gEspeonPokedexText[] = _( - "By reading air currents, it can predict\n" - "things such as the weather or its foe's\n" - "next move."); - -const u8 gEspeonPokedexTextUnused[] = _(""); - -const u8 gUmbreonPokedexText[] = _( - "When darkness falls, the rings on its body\n" - "begin to glow, striking fear in the hearts\n" - "of anyone nearby."); - -const u8 gUmbreonPokedexTextUnused[] = _(""); - -const u8 gMurkrowPokedexText[] = _( - "It is said that when chased, it lures its\n" - "attacker onto dark mountain trails where\n" - "the foe will get lost."); - -const u8 gMurkrowPokedexTextUnused[] = _(""); - -const u8 gSlowkingPokedexText[] = _( - "When its head was bitten, toxins entered\n" - "SLOWPOKE's head and unlocked an\n" - "extraordinary power."); - -const u8 gSlowkingPokedexTextUnused[] = _(""); - -const u8 gMisdreavusPokedexText[] = _( - "It loves to bite and yank people's hair\n" - "from behind without warning, just to see\n" - "their shocked reactions."); - -const u8 gMisdreavusPokedexTextUnused[] = _(""); - -// const u8 gUnownPokedexText[] = _( -// "Its flat, thin body is always stuck on\n" -// "walls. Its shape appears to have some\n" -// "meaning."); - -// const u8 gUnownPokedexTextUnused[] = _(""); - -const u8 gWobbuffetPokedexText[] = _( - "To keep its pitch-black tail hidden, it\n" - "lives quietly in the darkness. It is never\n" - "first to attack."); - -const u8 gWobbuffetPokedexTextUnused[] = _(""); - -const u8 gGirafarigPokedexText[] = _( - "Its tail, which also contains a small\n" - "brain, may bite on its own if it notices an\n" - "alluring smell."); - -const u8 gGirafarigPokedexTextUnused[] = _(""); - -const u8 gPinecoPokedexText[] = _( - "It hangs and waits for flying-insect prey\n" - "to come near. It does not move about\n" - "much on its own."); - -const u8 gPinecoPokedexTextUnused[] = _(""); - -const u8 gForretressPokedexText[] = _( - "It remains immovably rooted to its tree.\n" - "It scatters pieces of its hard shell to\n" - "drive its enemies away."); - -const u8 gForretressPokedexTextUnused[] = _(""); - -const u8 gDunsparcePokedexText[] = _( - "If spotted, it escapes by burrowing with\n" - "its tail. It can hover just slightly using\n" - "its wings."); - -const u8 gDunsparcePokedexTextUnused[] = _(""); - -const u8 gGligarPokedexText[] = _( - "It usually clings to cliffs. When it spots\n" - "its prey, it spreads its wings and glides\n" - "down to attack."); - -const u8 gGligarPokedexTextUnused[] = _(""); - -const u8 gSteelixPokedexText[] = _( - "It is said that if an ONIX lives for over\n" - "100 years, its composition changes to\n" - "become diamond-like."); - -const u8 gSteelixPokedexTextUnused[] = _(""); - -const u8 gSnubbullPokedexText[] = _( - "It has an active, playful nature. Many\n" - "women like to frolic with it because of\n" - "its affectionate ways."); - -const u8 gSnubbullPokedexTextUnused[] = _(""); - -const u8 gGranbullPokedexText[] = _( - "Because its fangs are too heavy, it\n" - "always keeps its head tilted down.\n" - "However, its BITE is powerful."); - -const u8 gGranbullPokedexTextUnused[] = _(""); - -const u8 gQwilfishPokedexText[] = _( - "The small spikes covering its body\n" - "developed from scales. They inject a\n" - "toxin that causes fainting."); - -const u8 gQwilfishPokedexTextUnused[] = _(""); - -const u8 gScizorPokedexText[] = _( - "Its wings are not used for flying.\n" - "They are flapped at high speed to adjust\n" - "its body temperature."); - -const u8 gScizorPokedexTextUnused[] = _(""); - -const u8 gShucklePokedexText[] = _( - "It stores BERRIES inside its shell.\n" - "To avoid attacks, it hides beneath rocks\n" - "and remains completely still."); - -const u8 gShucklePokedexTextUnused[] = _(""); - -const u8 gHeracrossPokedexText[] = _( - "Usually docile, but if disturbed while\n" - "sipping honey, it chases off the intruder\n" - "with its horn."); - -const u8 gHeracrossPokedexTextUnused[] = _(""); - -const u8 gSneaselPokedexText[] = _( - "Vicious in nature, it drives PIDGEY from\n" - "their nests and feasts on the eggs that\n" - "are left behind."); - -const u8 gSneaselPokedexTextUnused[] = _(""); - -const u8 gTeddiursaPokedexText[] = _( - "Before food becomes scarce in wintertime,\n" - "its habit is to hoard food in many hidden\n" - "locations."); - -const u8 gTeddiursaPokedexTextUnused[] = _(""); - -const u8 gUrsaringPokedexText[] = _( - "With its ability to distinguish any smell,\n" - "it unfailingly finds all food buried deep\n" - "underground."); - -const u8 gUrsaringPokedexTextUnused[] = _(""); - -const u8 gSlugmaPokedexText[] = _( - "A common sight in volcanic areas, it\n" - "slowly slithers around in a constant\n" - "search for warm places."); - -const u8 gSlugmaPokedexTextUnused[] = _(""); - -const u8 gMagcargoPokedexText[] = _( - "Its brittle shell occasionally spouts\n" - "intense flames that circulate throughout\n" - "its body."); - -const u8 gMagcargoPokedexTextUnused[] = _(""); - -const u8 gSwinubPokedexText[] = _( - "If it smells something enticing, it dashes\n" - "off headlong to find the source of the\n" - "aroma."); - -const u8 gSwinubPokedexTextUnused[] = _(""); - -const u8 gPiloswinePokedexText[] = _( - "If it charges at an enemy, the hairs on\n" - "its back stand up straight. It is very\n" - "sensitive to sound."); - -const u8 gPiloswinePokedexTextUnused[] = _(""); - -const u8 gCorsolaPokedexText[] = _( - "In a south sea nation, the people live in\n" - "communities that are built on groups of\n" - "these POKéMON."); - -const u8 gCorsolaPokedexTextUnused[] = _(""); - -const u8 gRemoraidPokedexText[] = _( - "Using its dorsal fin as a suction pad, it\n" - "clings to a MANTINE's underside to\n" - "scavenge for leftovers."); - -const u8 gRemoraidPokedexTextUnused[] = _(""); - -const u8 gOctilleryPokedexText[] = _( - "It instinctively sneaks into rocky holes.\n" - "If it gets sleepy, it steals the nest of a\n" - "fellow OCTILLERY."); - -const u8 gOctilleryPokedexTextUnused[] = _(""); - -const u8 gDelibirdPokedexText[] = _( - "It nests at the edge of sharp cliffs.\n" - "It spends all day carrying food to its\n" - "awaiting chicks."); - -const u8 gDelibirdPokedexTextUnused[] = _(""); - -const u8 gMantinePokedexText[] = _( - "Swimming freely in open seas, it may fly\n" - "out of the water and over the waves if it\n" - "builds up enough speed."); - -const u8 gMantinePokedexTextUnused[] = _(""); - -const u8 gSkarmoryPokedexText[] = _( - "After nesting in bramble bushes, the wings\n" - "of its chicks grow hard from scratches by\n" - "thorns."); - -const u8 gSkarmoryPokedexTextUnused[] = _(""); - -const u8 gHoundourPokedexText[] = _( - "To corner prey, they check each other's\n" - "location using barks that only they can\n" - "understand."); - -const u8 gHoundourPokedexTextUnused[] = _(""); - -const u8 gHoundoomPokedexText[] = _( - "Upon hearing its eerie howls, other\n" - "POKéMON get the shivers and head straight\n" - "back to their nests."); - -const u8 gHoundoomPokedexTextUnused[] = _(""); - -const u8 gKingdraPokedexText[] = _( - "It sleeps deep on the ocean floor to\n" - "build its energy. It is said to cause\n" - "tornadoes as it wakes."); - -const u8 gKingdraPokedexTextUnused[] = _(""); - -const u8 gPhanpyPokedexText[] = _( - "As a sign of affection, it bumps with its\n" - "snout. However, it is so strong, it may\n" - "send you flying."); - -const u8 gPhanpyPokedexTextUnused[] = _(""); - -const u8 gDonphanPokedexText[] = _( - "The longer and bigger its tusks, the\n" - "higher its rank in its herd. The tusks take\n" - "a long time to grow."); - -const u8 gDonphanPokedexTextUnused[] = _(""); - -const u8 gPorygon2PokedexText[] = _( - "Further research enhanced its abilities.\n" - "Sometimes, it may exhibit motions that\n" - "were not programmed."); - -const u8 gPorygon2PokedexTextUnused[] = _(""); - -const u8 gStantlerPokedexText[] = _( - "Those who stare at its antlers will\n" - "gradually lose control of their senses\n" - "and be unable to stand."); - -const u8 gStantlerPokedexTextUnused[] = _(""); - -const u8 gSmearglePokedexText[] = _( - "Once it becomes an adult, it has a\n" - "tendency to let its comrades plant\n" - "footprints on its back."); - -const u8 gSmearglePokedexTextUnused[] = _(""); - -const u8 gTyroguePokedexText[] = _( - "Even though it is small, it can't be\n" - "ignored because it will slug any handy\n" - "target without warning."); - -const u8 gTyroguePokedexTextUnused[] = _(""); - -const u8 gHitmontopPokedexText[] = _( - "It launches kicks while spinning. If it\n" - "spins at high speed, it may bore its way\n" - "into the ground."); - -const u8 gHitmontopPokedexTextUnused[] = _(""); - -const u8 gSmoochumPokedexText[] = _( - "It always rocks its head slowly backwards\n" - "and forwards as if it is trying to kiss\n" - "someone."); - -const u8 gSmoochumPokedexTextUnused[] = _(""); - -const u8 gElekidPokedexText[] = _( - "Even in the most vicious storm, this\n" - "POKéMON plays happily if thunder rumbles\n" - "in the sky."); - -const u8 gElekidPokedexTextUnused[] = _(""); - -const u8 gMagbyPokedexText[] = _( - "It is found in volcanic craters. Its body\n" - "heat exceeds 1,100 degrees Fahrenheit,\n" - "so don't underestimate it."); - -const u8 gMagbyPokedexTextUnused[] = _(""); - -const u8 gMiltankPokedexText[] = _( - "If it has just had a baby, the milk it\n" - "produces contains much more nutrition than\n" - "usual."); - -const u8 gMiltankPokedexTextUnused[] = _(""); - -const u8 gBlisseyPokedexText[] = _( - "It has a very compassionate nature. If it\n" - "sees a sick POKéMON, it will nurse the\n" - "sufferer back to health."); - -const u8 gBlisseyPokedexTextUnused[] = _(""); - -const u8 gRaikouPokedexText[] = _( - "This POKéMON races across the\n" - "land while barking a cry that sounds\n" - "like crashing thunder."); - -const u8 gRaikouPokedexTextUnused[] = _(""); - -const u8 gEnteiPokedexText[] = _( - "A POKéMON that races across the land.\n" - "It is said that one is born every time a\n" - "new volcano appears."); - -const u8 gEnteiPokedexTextUnused[] = _(""); - -const u8 gSuicunePokedexText[] = _( - "This POKéMON races across the land.\n" - "It is said that north winds will somehow\n" - "blow whenever it appears."); - -const u8 gSuicunePokedexTextUnused[] = _(""); - -const u8 gLarvitarPokedexText[] = _( - "It is born deep underground. It can't\n" - "emerge until it has entirely consumed the\n" - "soil around it."); - -const u8 gLarvitarPokedexTextUnused[] = _(""); - -const u8 gPupitarPokedexText[] = _( - "Even sealed in its shell, it can move\n" - "freely. Hard and fast, it has outstanding\n" - "destructive power."); - -const u8 gPupitarPokedexTextUnused[] = _(""); - -const u8 gTyranitarPokedexText[] = _( -#if REVISION == 0 - "Its body can't be harmed by any sort of\n" - "attack, so it is very eager to make\n" - "challenges against enemies." -#else -"It has an impudent nature. Having great\n" - "strength, it can even change surrounding\n" - "landforms." -#endif -); - -const u8 gTyranitarPokedexTextUnused[] = _(""); - -const u8 gLugiaPokedexText[] = _( - "It is said to be the guardian of the seas.\n" - "It is rumored to have been seen on the\n" - "night of a storm."); - -const u8 gLugiaPokedexTextUnused[] = _(""); - -const u8 gHoOhPokedexText[] = _( - "A legend says that its body glows in\n" - "seven colors. A rainbow is said to form\n" - "behind it when it flies."); - -const u8 gHoOhPokedexTextUnused[] = _(""); - -const u8 gCelebiPokedexText[] = _( - "When CELEBI disappears deep in a forest,\n" - "it is said to leave behind an egg it\n" - "brought from the future."); - -const u8 gCelebiPokedexTextUnused[] = _(""); - -const u8 gTreeckoPokedexText[] = _( - "It quickly scales even vertical walls.\n" - "It senses humidity with its tail to predict\n" - "the next day's weather."); - -const u8 gTreeckoPokedexTextUnused[] = _(""); - -const u8 gGrovylePokedexText[] = _( - "Its strongly developed thigh muscles\n" - "give it astounding agility and jumping\n" - "performance."); - -const u8 gGrovylePokedexTextUnused[] = _(""); - -const u8 gSceptilePokedexText[] = _( - "The leaves on its forelegs are as sharp\n" - "as swords. It agilely leaps about the\n" - "branches of trees to strike."); - -const u8 gSceptilePokedexTextUnused[] = _(""); - -const u8 gTorchicPokedexText[] = _( - "It has a flame sac inside its belly that\n" - "perpetually burns. It feels warm if it is\n" - "hugged."); - -const u8 gTorchicPokedexTextUnused[] = _(""); - -const u8 gCombuskenPokedexText[] = _( - "It boosts its concentration by emitting\n" - "harsh cries. Its kicks have outstanding\n" - "destructive power."); - -const u8 gCombuskenPokedexTextUnused[] = _(""); - -const u8 gBlazikenPokedexText[] = _( - "When facing a tough foe, it looses flames\n" - "from its wrists. Its powerful legs let it\n" - "jump clear over buildings."); - -const u8 gBlazikenPokedexTextUnused[] = _(""); - -const u8 gMudkipPokedexText[] = _( - "Its large tail fin propels it through\n" - "water with powerful acceleration. It is\n" - "strong in spite of its size."); - -const u8 gMudkipPokedexTextUnused[] = _(""); - -const u8 gMarshtompPokedexText[] = _( - "It is at its best when on muddy ground\n" - "with poor footing. It quickly overwhelms\n" - "foes struggling in mud."); - -const u8 gMarshtompPokedexTextUnused[] = _(""); - -const u8 gSwampertPokedexText[] = _( - "Its arms are rock-hard. With one swing,\n" - "they can batter down its foe. It makes its\n" - "nest on beautiful beaches."); - -const u8 gSwampertPokedexTextUnused[] = _(""); - -const u8 gPoochyenaPokedexText[] = _( - "It has a very tenacious nature. Its acute\n" - "sense of smell lets it chase a chosen\n" - "prey without ever losing track."); - -const u8 gPoochyenaPokedexTextUnused[] = _(""); - -const u8 gMightyenaPokedexText[] = _( - "It will always obey the commands of a\n" - "skilled TRAINER. Its behavior arises from\n" - "its living in packs in ancient times."); - -const u8 gMightyenaPokedexTextUnused[] = _(""); - -const u8 gZigzagoonPokedexText[] = _( - "A POKéMON with abundant curiosity.\n" - "It shows an interest in everything, so it\n" - "always zigs and zags."); - -const u8 gZigzagoonPokedexTextUnused[] = _(""); - -const u8 gLinoonePokedexText[] = _( - "When running in a straight line, it can top\n" - "60 miles per hour. However, it has a\n" - "tough time with curved roads."); - -const u8 gLinoonePokedexTextUnused[] = _(""); - -const u8 gWurmplePokedexText[] = _( - "It lives amidst tall grass and in forests.\n" - "When attacked, it resists by pointing its\n" - "venomous spikes at the foe."); - -const u8 gWurmplePokedexTextUnused[] = _(""); - -const u8 gSilcoonPokedexText[] = _( - "It conserves its energy by moving as\n" - "little as possible. It awaits evolution\n" - "while drinking only a little rainwater."); - -const u8 gSilcoonPokedexTextUnused[] = _(""); - -const u8 gBeautiflyPokedexText[] = _( - "Despite its appearance, it has an\n" - "aggressive nature. It attacks by jabbing\n" - "with its long, thin mouth."); - -const u8 gBeautiflyPokedexTextUnused[] = _(""); - -const u8 gCascoonPokedexText[] = _( - "Its body, which is made of soft silk,\n" - "hardens over time. When cracks appear,\n" - "evolution is near."); - -const u8 gCascoonPokedexTextUnused[] = _(""); - -const u8 gDustoxPokedexText[] = _( - "It scatters horribly toxic dust when it\n" - "senses danger. They tend to gather in the\n" - "glow of streetlamps at night."); - -const u8 gDustoxPokedexTextUnused[] = _(""); - -const u8 gLotadPokedexText[] = _( - "It searches about for clean water. If it\n" - "does not drink water for too long, the\n" - "leaf on its head wilts."); - -const u8 gLotadPokedexTextUnused[] = _(""); - -const u8 gLombrePokedexText[] = _( - "It lives at the water's edge where it is\n" - "sunny. It sleeps on a bed of water grass\n" - "by day and becomes active at night."); - -const u8 gLombrePokedexTextUnused[] = _(""); - -const u8 gLudicoloPokedexText[] = _( - "The rhythm of bright, festive music\n" - "activates LUDICOLO's cells, making it more\n" - "powerful."); - -const u8 gLudicoloPokedexTextUnused[] = _(""); - -const u8 gSeedotPokedexText[] = _( - "If it remains still, it becomes impossible\n" - "to distinguish from real nuts. It delights\n" - "in surprising foraging PIDGEY."); - -const u8 gSeedotPokedexTextUnused[] = _(""); - -const u8 gNuzleafPokedexText[] = _( - "They live in holes bored in large trees.\n" - "The sound of NUZLEAF's grass flute fills\n" - "listeners with dread."); - -const u8 gNuzleafPokedexTextUnused[] = _(""); - -const u8 gShiftryPokedexText[] = _( - "A POKéMON that was feared as a forest\n" - "guardian. It can read the foe's mind and\n" - "take preemptive action."); - -const u8 gShiftryPokedexTextUnused[] = _(""); - -const u8 gTaillowPokedexText[] = _( - "It dislikes cold seasons. They migrate to\n" - "other lands in search of warmth, flying\n" - "over 180 miles a day."); - -const u8 gTaillowPokedexTextUnused[] = _(""); - -const u8 gSwellowPokedexText[] = _( - "If its two tail feathers are standing at\n" - "attention, it is proof of good health.\n" - "It soars elegantly in the sky."); - -const u8 gSwellowPokedexTextUnused[] = _(""); - -const u8 gWingullPokedexText[] = _( - "It rides upon ocean winds as if it were\n" - "a glider. In the winter, it hides food\n" - "around its nest."); - -const u8 gWingullPokedexTextUnused[] = _(""); - -const u8 gPelipperPokedexText[] = _( - "It is a flying transporter that carries\n" - "small POKéMON in its beak. It bobs on the\n" - "waves to rest its wings."); - -const u8 gPelipperPokedexTextUnused[] = _(""); - -const u8 gRaltsPokedexText[] = _( - "It is highly attuned to the emotions of\n" - "people and POKéMON. It hides if it senses\n" - "hostility."); - -const u8 gRaltsPokedexTextUnused[] = _(""); - -const u8 gKirliaPokedexText[] = _( - "The cheerful spirit of its TRAINER gives\n" - "it energy for its psychokinetic power.\n" - "It spins and dances when happy."); - -const u8 gKirliaPokedexTextUnused[] = _(""); - -const u8 gGardevoirPokedexText[] = _( - "It has the power to predict the future.\n" - "Its power peaks when it is protecting its\n" - "TRAINER."); - -const u8 gGardevoirPokedexTextUnused[] = _(""); - -const u8 gSurskitPokedexText[] = _( - "They usually live on ponds, but after an\n" - "evening shower, they may appear on\n" - "puddles in towns."); - -const u8 gSurskitPokedexTextUnused[] = _(""); - -const u8 gMasquerainPokedexText[] = _( - "The antennae have distinctive patterns\n" - "that look like eyes. When it rains, they\n" - "grow heavy, making flight impossible."); - -const u8 gMasquerainPokedexTextUnused[] = _(""); - -const u8 gShroomishPokedexText[] = _( - "It prefers damp places. By day it remains\n" - "still in the forest shade. It releases\n" - "toxic powder from its head."); - -const u8 gShroomishPokedexTextUnused[] = _(""); - -const u8 gBreloomPokedexText[] = _( - "The seeds on its tail are made of toxic\n" - "spores. It knocks out foes with quick,\n" - "virtually invisible punches."); - -const u8 gBreloomPokedexTextUnused[] = _(""); - -const u8 gSlakothPokedexText[] = _( - "It sleeps for 20 hours every day. Making\n" - "drowsy those that see it is one of\n" - "its abilities."); - -const u8 gSlakothPokedexTextUnused[] = _(""); - -const u8 gVigorothPokedexText[] = _( - "It is always hungry because it won't stop\n" - "rampaging. Even while it is eating, it\n" - "can't keep still."); - -const u8 gVigorothPokedexTextUnused[] = _(""); - -const u8 gSlakingPokedexText[] = _( - "It is the world's most slothful POKéMON.\n" - "However, it can exert horrifying power by\n" - "releasing pent-up energy all at once."); - -const u8 gSlakingPokedexTextUnused[] = _(""); - -const u8 gNincadaPokedexText[] = _( - "Because it lived almost entirely\n" - "underground, it is nearly blind.\n" - "It uses its antennae instead."); - -const u8 gNincadaPokedexTextUnused[] = _(""); - -const u8 gNinjaskPokedexText[] = _( - "This POKéMON is so quick, it is said to\n" - "be able to avoid any attack. It loves to\n" - "feed on tree sap."); - -const u8 gNinjaskPokedexTextUnused[] = _(""); - -const u8 gShedinjaPokedexText[] = _( - "A most peculiar POKéMON that somehow\n" - "appears in a POKé BALL when a NINCADA\n" - "evolves."); - -const u8 gShedinjaPokedexTextUnused[] = _(""); - -const u8 gWhismurPokedexText[] = _( - "It usually murmurs, but starts crying\n" - "loudly if it senses danger. It stops when\n" - "its ear covers are shut."); - -const u8 gWhismurPokedexTextUnused[] = _(""); - -const u8 gLoudredPokedexText[] = _( - "When it stamps its feet and bellows, it\n" - "generates ultrasonic waves that can blow\n" - "apart a house."); - -const u8 gLoudredPokedexTextUnused[] = _(""); - -const u8 gExploudPokedexText[] = _( - "It emits a variety of sounds from the \n" - "holes all over its body. Its loud cries\n" - "can be heard from over six miles away."); - -const u8 gExploudPokedexTextUnused[] = _(""); - -const u8 gMakuhitaPokedexText[] = _( - "It grows stronger by enduring harsh\n" - "training. It is a gutsy POKéMON that can\n" - "withstand any attack."); - -const u8 gMakuhitaPokedexTextUnused[] = _(""); - -const u8 gHariyamaPokedexText[] = _( - "It stomps on the ground to build power.\n" - "It can send a 10-ton truck flying with a\n" - "straight-arm punch."); - -const u8 gHariyamaPokedexTextUnused[] = _(""); - -const u8 gAzurillPokedexText[] = _( - "It battles by flinging around its tail,\n" - "which is bigger than its body. The\n" - "tail is a flotation device in water."); - -const u8 gAzurillPokedexTextUnused[] = _(""); - -const u8 gNosepassPokedexText[] = _( - "Its magnetic nose consistently faces\n" - "north. Travelers check NOSEPASS to get\n" - "their bearings."); - -const u8 gNosepassPokedexTextUnused[] = _(""); - -const u8 gSkittyPokedexText[] = _( - "It is said to be difficult to earn its\n" - "trust. However, it is extremely popular\n" - "for its cute looks and behavior."); - -const u8 gSkittyPokedexTextUnused[] = _(""); - -const u8 gDelcattyPokedexText[] = _( - "The favorite of trend-conscious\n" - "female TRAINERS, they are used in\n" - "competition for their style and fur."); - -const u8 gDelcattyPokedexTextUnused[] = _(""); - -const u8 gSableyePokedexText[] = _( - "It feeds on gemstone crystals.\n" - "In darkness, its eyes sparkle with the\n" - "glitter of jewels."); - -const u8 gSableyePokedexTextUnused[] = _(""); - -const u8 gMawilePokedexText[] = _( - "It uses its docile-looking face to lull\n" - "foes into complacency, then bites with its\n" - "huge, relentless jaws."); - -const u8 gMawilePokedexTextUnused[] = _(""); - -const u8 gAronPokedexText[] = _( - "It eats iron to build its steel body.\n" - "It is a pest that descends from mountains\n" - "to eat bridges and train tracks."); - -const u8 gAronPokedexTextUnused[] = _(""); - -const u8 gLaironPokedexText[] = _( - "It habitually shows off its strength with\n" - "the size of sparks it creates by ramming\n" - "its steel body into boulders."); - -const u8 gLaironPokedexTextUnused[] = _(""); - -const u8 gAggronPokedexText[] = _( - "It claims a large mountain as its sole\n" - "territory. It mercilessly thrashes those\n" - "that violate its space."); - -const u8 gAggronPokedexTextUnused[] = _(""); - -const u8 gMedititePokedexText[] = _( - "It never skips its daily yoga training.\n" - "It heightens its inner strength through\n" - "meditation."); - -const u8 gMedititePokedexTextUnused[] = _(""); - -const u8 gMedichamPokedexText[] = _( - "It elegantly avoids attacks with dance-\n" - "like steps, then launches a devastating\n" - "blow in the same motion."); - -const u8 gMedichamPokedexTextUnused[] = _(""); - -const u8 gElectrikePokedexText[] = _( - "It stores static electricity in its fur\n" - "for discharging. It gives off sparks if a\n" - "storm approaches."); - -const u8 gElectrikePokedexTextUnused[] = _(""); - -const u8 gManectricPokedexText[] = _( - "It rarely appears before people.\n" - "It is said to nest where lightning has\n" - "fallen."); - -const u8 gManectricPokedexTextUnused[] = _(""); - -const u8 gPluslePokedexText[] = _( - "It cheers on partners while scattering\n" - "sparks from its body. It climbs telephone\n" - "poles to absorb electricity."); - -const u8 gPluslePokedexTextUnused[] = _(""); - -const u8 gMinunPokedexText[] = _( - "Its dislike of water makes it take shelter\n" - "under the eaves of houses in rain. It uses\n" - "pom-poms made of sparks for cheering."); - -const u8 gMinunPokedexTextUnused[] = _(""); - -const u8 gVolbeatPokedexText[] = _( - "It lives around clean ponds. At night,\n" - "its rear lights up. It converses with\n" - "others by flashing its light."); - -const u8 gVolbeatPokedexTextUnused[] = _(""); - -const u8 gIllumisePokedexText[] = _( - "It guides VOLBEAT to draw signs in night\n" - "skies. There are scientists that study the\n" - "patterns it creates."); - -const u8 gIllumisePokedexTextUnused[] = _(""); - -const u8 gRoseliaPokedexText[] = _( - "Its flowers give off a relaxing fragrance.\n" - "The stronger its aroma, the healthier\n" - "the ROSELIA is."); - -const u8 gRoseliaPokedexTextUnused[] = _(""); - -const u8 gGulpinPokedexText[] = _( - "There is nothing its stomach can't digest.\n" - "While it is digesting, vile, overpowering\n" - "gases are expelled."); - -const u8 gGulpinPokedexTextUnused[] = _(""); - -const u8 gSwalotPokedexText[] = _( - "It can swallow a tire whole in one gulp.\n" - "It secretes a horribly toxic fluid from\n" - "the pores on its body."); - -const u8 gSwalotPokedexTextUnused[] = _(""); - -const u8 gCarvanhaPokedexText[] = _( - "It lives in massive rivers that course\n" - "through jungles. It swarms prey that\n" - "enter its territory."); - -const u8 gCarvanhaPokedexTextUnused[] = _(""); - -const u8 gSharpedoPokedexText[] = _( - "The ruffian of the seas, it has fangs that\n" - "crunch through iron. It swims by jetting\n" - "water from its rear."); - -const u8 gSharpedoPokedexTextUnused[] = _(""); - -const u8 gWailmerPokedexText[] = _( - "When it sucks in a large volume of\n" - "seawater, it becomes like a big, bouncy\n" - "ball. It eats a ton of food daily."); - -const u8 gWailmerPokedexTextUnused[] = _(""); - -const u8 gWailordPokedexText[] = _( - "It is among the largest of all POKéMON.\n" - "It herds prey in a pack then swallows the\n" - "massed prey in one gulp."); - -const u8 gWailordPokedexTextUnused[] = _(""); - -const u8 gNumelPokedexText[] = _( - "Magma of almost 2,200 degrees Fahrenheit\n" - "courses through its body. When it grows\n" - "cold, the magma hardens and slows it."); - -const u8 gNumelPokedexTextUnused[] = _(""); - -const u8 gCameruptPokedexText[] = _( - "If angered, the humps on its back erupt\n" - "in a shower of molten lava. It lives in\n" - "the craters of volcanoes."); - -const u8 gCameruptPokedexTextUnused[] = _(""); - -const u8 gTorkoalPokedexText[] = _( - "It burns coal inside its shell. If it is\n" - "attacked, it belches thick, black smoke\n" - "and flees."); - -const u8 gTorkoalPokedexTextUnused[] = _(""); - -const u8 gSpoinkPokedexText[] = _( - "It apparently dies if it stops bouncing\n" - "about. It carries a pearl from CLAMPERL\n" - "on its head."); - -const u8 gSpoinkPokedexTextUnused[] = _(""); - -const u8 gGrumpigPokedexText[] = _( - "It can gain control over foes by doing\n" - "odd dance steps. The black pearls on its\n" - "forehead are precious gems."); - -const u8 gGrumpigPokedexTextUnused[] = _(""); - -const u8 gSpindaPokedexText[] = _( - "No two SPINDA are said to have identical\n" - "patterns. It confuses foes with its\n" - "stumbling motions."); - -const u8 gSpindaPokedexTextUnused[] = _(""); - -const u8 gTrapinchPokedexText[] = _( - "It lives in arid deserts. It makes a\n" - "sloping pit trap in sand where it\n" - "patiently awaits prey."); - -const u8 gTrapinchPokedexTextUnused[] = _(""); - -const u8 gVibravaPokedexText[] = _( - "It generates ultrasonic waves by violently\n" - "flapping its wings. After making its prey\n" - "faint, it melts the prey with acid."); - -const u8 gVibravaPokedexTextUnused[] = _(""); - -const u8 gFlygonPokedexText[] = _( - "It hides itself by kicking up desert sand\n" - "with its wings. Red covers shield its eyes\n" - "from sand."); - -const u8 gFlygonPokedexTextUnused[] = _(""); - -const u8 gCacneaPokedexText[] = _( - "It prefers harsh environments such as\n" - "deserts. It can survive for 30 days on\n" - "water stored in its body."); - -const u8 gCacneaPokedexTextUnused[] = _(""); - -const u8 gCacturnePokedexText[] = _( - "It lives in deserts. It becomes active at\n" - "night when it hunts for prey exhausted\n" - "from the desert's heat."); - -const u8 gCacturnePokedexTextUnused[] = _(""); - -const u8 gSwabluPokedexText[] = _( - "It constantly grooms its cotton-like\n" - "wings. It takes a shower to clean\n" - "itself if it becomes dirty."); - -const u8 gSwabluPokedexTextUnused[] = _(""); - -const u8 gAltariaPokedexText[] = _( - "If you hear a beautiful melody trilling\n" - "deep among mountains far from people,\n" - "it is ALTARIA's humming."); - -const u8 gAltariaPokedexTextUnused[] = _(""); - -const u8 gZangoosePokedexText[] = _( - "If it comes across a SEVIPER, its fur\n" - "bristles and it assumes its battle pose.\n" - "Its sharp claws are its best weapon."); - -const u8 gZangoosePokedexTextUnused[] = _(""); - -const u8 gSeviperPokedexText[] = _( - "It sharpens its swordlike tail on hard\n" - "rocks. It hides in tall grass and strikes\n" - "unwary prey with venomous fangs."); - -const u8 gSeviperPokedexTextUnused[] = _(""); - -const u8 gLunatonePokedexText[] = _( - "Its health ebbs and flows with the lunar\n" - "cycle. It brims with power when exposed\n" - "to the light of the full moon."); - -const u8 gLunatonePokedexTextUnused[] = _(""); - -const u8 gSolrockPokedexText[] = _( - "It absorbs solar energy during the day.\n" - "Always expressionless, it can sense what\n" - "its foe is thinking."); - -const u8 gSolrockPokedexTextUnused[] = _(""); - -const u8 gBarboachPokedexText[] = _( - "It probes muddy riverbeds with its two\n" - "long whiskers. A slimy film protects its\n" - "body."); - -const u8 gBarboachPokedexTextUnused[] = _(""); - -const u8 gWhiscashPokedexText[] = _( - "It makes its nest at the bottom of \n" - "swamps. It will eat anything - if it is\n" - "alive, WHISCASH will eat it."); - -const u8 gWhiscashPokedexTextUnused[] = _(""); - -const u8 gCorphishPokedexText[] = _( - "It came from overseas. It is a very hardy\n" - "creature that will quickly proliferate,\n" - "even in polluted streams."); - -const u8 gCorphishPokedexTextUnused[] = _(""); - -const u8 gCrawdauntPokedexText[] = _( - "A rough customer that wildly flails its\n" - "giant claws. It is said to be extremely\n" - "hard to raise."); - -const u8 gCrawdauntPokedexTextUnused[] = _(""); - -const u8 gBaltoyPokedexText[] = _( - "It was discovered in ancient ruins.\n" - "While moving, it constantly spins. It\n" - "stands on one foot even when asleep."); - -const u8 gBaltoyPokedexTextUnused[] = _(""); - -const u8 gClaydolPokedexText[] = _( - "It appears to have been born from clay\n" - "dolls made by ancient people. It uses\n" - "telekinesis to float and move."); - -const u8 gClaydolPokedexTextUnused[] = _(""); - -const u8 gLileepPokedexText[] = _( - "It became extinct roughly 100 million\n" - "years ago. It was regenerated from a\n" - "fossil using advanced techniques."); - -const u8 gLileepPokedexTextUnused[] = _(""); - -const u8 gCradilyPokedexText[] = _( - "It ensnares prey with its eight tentacles.\n" - "It then melts the prey with a strong acid\n" - "before feeding."); - -const u8 gCradilyPokedexTextUnused[] = _(""); - -const u8 gAnorithPokedexText[] = _( - "It is a kind of POKéMON progenitor.\n" - "It uses its extending claws to catch prey\n" - "hiding among rocks on the seafloor."); - -const u8 gAnorithPokedexTextUnused[] = _(""); - -const u8 gArmaldoPokedexText[] = _( - "Protected by a hard shell, its body is\n" - "very sturdy. It skewers prey with its\n" - "claws to feed."); - -const u8 gArmaldoPokedexTextUnused[] = _(""); - -const u8 gFeebasPokedexText[] = _( - "Ridiculed for its shabby appearance,\n" - "it is ignored by researchers. It lives in\n" - "ponds choked with weeds."); - -const u8 gFeebasPokedexTextUnused[] = _(""); - -const u8 gMiloticPokedexText[] = _( - "MILOTIC is breathtakingly beautiful.\n" - "Those that see it are said to forget their\n" - "combative spirits."); - -const u8 gMiloticPokedexTextUnused[] = _(""); - -const u8 gCastformPokedexText[] = _( - "It has the ability to change its form into\n" - "the sun, the rain, or a snow cloud, \n" - "depending on the weather."); - -const u8 gCastformPokedexTextUnused[] = _(""); - -const u8 gKecleonPokedexText[] = _( - "It changes body color to blend in with\n" - "its surroundings. It also changes color if\n" - "it is happy or sad."); - -const u8 gKecleonPokedexTextUnused[] = _(""); - -const u8 gShuppetPokedexText[] = _( - "It loves to feed on feelings like envy and\n" - "malice. Its upright horn catches the\n" - "emotions of people."); - -const u8 gShuppetPokedexTextUnused[] = _(""); - -const u8 gBanettePokedexText[] = _( - "Strong feelings of hatred turned a puppet\n" - "into a POKéMON. If it opens its mouth,\n" - "its cursed energy escapes."); - -const u8 gBanettePokedexTextUnused[] = _(""); - -const u8 gDuskullPokedexText[] = _( - "Making itself invisible, it silently sneaks\n" - "up to prey. It has the ability to slip\n" - "through thick walls."); - -const u8 gDuskullPokedexTextUnused[] = _(""); - -const u8 gDusclopsPokedexText[] = _( - "Its body is entirely hollow. When it opens\n" - "its mouth, it sucks everything in as if it\n" - "were a black hole."); - -const u8 gDusclopsPokedexTextUnused[] = _(""); - -const u8 gTropiusPokedexText[] = _( - "It lives in tropical jungles. The bunch of\n" - "fruit around its neck is delicious.\n" - "The fruit grows twice a year."); - -const u8 gTropiusPokedexTextUnused[] = _(""); - -const u8 gChimechoPokedexText[] = _( - "It travels by riding on winds. It cleverly\n" - "uses its long tail to pluck nuts and\n" - "berries, which it loves to eat."); - -const u8 gChimechoPokedexTextUnused[] = _(""); - -const u8 gAbsolPokedexText[] = _( - "It appears when it senses an impending\n" - "natural disaster. As a result, it was\n" - "mistaken as a doom-bringer."); - -const u8 gAbsolPokedexTextUnused[] = _(""); - -const u8 gWynautPokedexText[] = _( - "It tends to move in a pack with others.\n" - "They cluster in a tight group to sleep in\n" - "a cave."); - -const u8 gWynautPokedexTextUnused[] = _(""); - -const u8 gSnoruntPokedexText[] = _( - "It is said that a home visited by a\n" - "SNORUNT will prosper. It can withstand\n" - "cold of minus 150 degrees Fahrenheit."); - -const u8 gSnoruntPokedexTextUnused[] = _(""); - -const u8 gGlaliePokedexText[] = _( - "It has a body of ice that won't melt,\n" - "even with fire. It can instantly freeze\n" - "moisture in the atmosphere."); - -const u8 gGlaliePokedexTextUnused[] = _(""); - -const u8 gSphealPokedexText[] = _( - "Its body is covered in fluffy fur. The\n" - "fur keeps it from feeling cold while\n" - "it is rolling on ice."); - -const u8 gSphealPokedexTextUnused[] = _(""); - -const u8 gSealeoPokedexText[] = _( - "It touches new things with its nose to\n" - "test for smell and feel. It plays by\n" - "spinning SPHEAL on its nose."); - -const u8 gSealeoPokedexTextUnused[] = _(""); - -const u8 gWalreinPokedexText[] = _( - "It swims through icy seas while shattering\n" - "ice floes with its large tusks. It is\n" - "protected by its thick blubber."); - -const u8 gWalreinPokedexTextUnused[] = _(""); - -const u8 gClamperlPokedexText[] = _( - "It is protected by a sturdy shell.\n" - "Once in a lifetime, it makes a magnificent\n" - "pearl."); - -const u8 gClamperlPokedexTextUnused[] = _(""); - -const u8 gHuntailPokedexText[] = _( - "It lives deep in the sea where no light\n" - "ever filters down. It lights up its small\n" - "fishlike tail to attract prey."); - -const u8 gHuntailPokedexTextUnused[] = _(""); - -const u8 gGorebyssPokedexText[] = _( - "Its swimming form is exquisitely elegant.\n" - "With its thin mouth, it feeds on seaweed\n" - "that grows between rocks."); - -const u8 gGorebyssPokedexTextUnused[] = _(""); - -const u8 gRelicanthPokedexText[] = _( - "It has remained unchanged for 100\n" - "million years. It was discovered\n" - "during a deep-sea exploration."); - -const u8 gRelicanthPokedexTextUnused[] = _(""); - -const u8 gLuvdiscPokedexText[] = _( - "During the spawning season, countless\n" - "LUVDISC congregate at coral reefs,\n" - "turning the waters pink."); - -const u8 gLuvdiscPokedexTextUnused[] = _(""); - -const u8 gBagonPokedexText[] = _( - "Its steel-hard head can shatter boulders.\n" - "It longingly hopes for wings to grow so it\n" - "can fly."); - -const u8 gBagonPokedexTextUnused[] = _(""); - -const u8 gShelgonPokedexText[] = _( - "Its armored body makes all attacks bounce\n" - "off. The armor is too tough, however,\n" - "making it heavy and somewhat sluggish."); - -const u8 gShelgonPokedexTextUnused[] = _(""); - -const u8 gSalamencePokedexText[] = _( - "It becomes uncontrollable if it is\n" - "enraged. It destroys everything with\n" - "shredding claws and fire."); - -const u8 gSalamencePokedexTextUnused[] = _(""); - -const u8 gBeldumPokedexText[] = _( - "It uses magnetic waves to converse with\n" - "its kind. All the cells in its body are\n" - "magnetic."); - -const u8 gBeldumPokedexTextUnused[] = _(""); - -const u8 gMetangPokedexText[] = _( - "It floats midair using magnetism. Its body\n" - "is so tough, even a crash with a jet\n" - "plane won't leave a scratch."); - -const u8 gMetangPokedexTextUnused[] = _(""); - -const u8 gMetagrossPokedexText[] = _( - "It is formed by two METANG fusing.\n" - "Its four brains are said to be superior\n" - "to a supercomputer."); - -const u8 gMetagrossPokedexTextUnused[] = _(""); - -const u8 gRegirockPokedexText[] = _( - "It is entirely composed of rocks with no\n" - "sign of a brain or heart. It is a mystery\n" - "even to modern scientists."); - -const u8 gRegirockPokedexTextUnused[] = _(""); - -const u8 gRegicePokedexText[] = _( - "Research revealed that its body is made\n" - "of the same kind of ice that is found at\n" - "the South Pole."); - -const u8 gRegicePokedexTextUnused[] = _(""); - -const u8 gRegisteelPokedexText[] = _( - "It is sturdier than any kind of metal.\n" - "It hardened due to pressure underground\n" - "over tens of thousands of years."); - -const u8 gRegisteelPokedexTextUnused[] = _(""); - -const u8 gLatiasPokedexText[] = _( - "It can telepathically communicate with\n" - "people. It changes its appearance using\n" - "its down that refracts light."); - -const u8 gLatiasPokedexTextUnused[] = _(""); - -const u8 gLatiosPokedexText[] = _( - "It has a docile temperament and dislikes\n" - "fighting. Tucking in its forelegs, it can\n" - "fly faster than a jet plane."); - -const u8 gLatiosPokedexTextUnused[] = _(""); - -const u8 gKyogrePokedexText[] = _( - "This POKéMON is said to have\n" - "expanded the sea by bringing heavy rains.\n" - "It has the power to control water."); - -const u8 gKyogrePokedexTextUnused[] = _(""); - -const u8 gGroudonPokedexText[] = _( - "This legendary POKéMON is said to\n" - "represent the land. It went to sleep after\n" - "dueling KYOGRE."); - -const u8 gGroudonPokedexTextUnused[] = _(""); - -const u8 gRayquazaPokedexText[] = _( - "It has lived for hundreds of millions of\n" - "years in the ozone layer. Its flying form\n" - "looks like a meteor."); - -const u8 gRayquazaPokedexTextUnused[] = _(""); - -const u8 gJirachiPokedexText[] = _( - "It is said to make any wish come true.\n" - "It is awake for only seven days out of\n" - "a thousand years."); - -const u8 gJirachiPokedexTextUnused[] = _(""); - -const u8 gDeoxysPokedexText[] = _( - "This DEOXYS has transformed into its\n" - "aggressive guise. It can fool enemies by\n" - "altering its appearance."); - -const u8 gDeoxysPokedexTextUnused[] = _(""); diff --git a/src/data/pokemon/pokedex_text_lg.h b/src/data/pokemon/pokedex_text_lg.h deleted file mode 100644 index b9e2055c2..000000000 --- a/src/data/pokemon/pokedex_text_lg.h +++ /dev/null @@ -1,2711 +0,0 @@ -const u8 gDummyPokedexText[] = _( - "This is a newly discovered POKéMON. It is\n" - "currently under investigation. No detailed\n" - "information is available at this time."); - -const u8 gDummyPokedexTextUnused[] = _(""); - -const u8 gBulbasaurPokedexText[] = _( - "A strange seed was planted on its back at\n" - "birth. The plant sprouts and grows with\n" - "this POKéMON."); - -const u8 gBulbasaurPokedexTextUnused[] = _(""); - -const u8 gIvysaurPokedexText[] = _( - "When the bulb on its back grows large, it\n" - "appears to lose the ability to stand on\n" - "its hind legs."); - -const u8 gIvysaurPokedexTextUnused[] = _(""); - -const u8 gVenusaurPokedexText[] = _( - "Its plant blooms when it is absorbing\n" - "solar energy. It stays on the move to\n" - "seek sunlight."); - -const u8 gVenusaurPokedexTextUnused[] = _( - " "); - -const u8 gCharmanderPokedexText[] = _( - "It has a preference for hot things.\n" - "When it rains, steam is said to spout from\n" - "the tip of its tail."); - -const u8 gCharmanderPokedexTextUnused[] = _(""); - -const u8 gCharmeleonPokedexText[] = _( - "When it swings its burning tail, it\n" - "elevates the air temperature to \n" - "unbearably high levels."); - -const u8 gCharmeleonPokedexTextUnused[] = _(""); - -const u8 gCharizardPokedexText[] = _( - "It spits fire that is hot enough to melt\n" - "boulders. It may cause forest fires by\n" - "blowing flames."); - -const u8 gCharizardPokedexTextUnused[] = _(""); - -const u8 gSquirtlePokedexText[] = _( - "After birth, its back swells and hardens\n" - "into a shell. It powerfully sprays foam \n" - "from its mouth."); - -const u8 gSquirtlePokedexTextUnused[] = _(""); - -const u8 gWartortlePokedexText[] = _( - "It often hides in water to stalk unwary\n" - "prey. For fast swimming, it moves its\n" - "ears to maintain balance."); - -const u8 gWartortlePokedexTextUnused[] = _(""); - -const u8 gBlastoisePokedexText[] = _( - "The pressurized water jets on this brutal\n" - "POKéMON's shell are used for high-\n" - "speed tackles."); - -const u8 gBlastoisePokedexTextUnused[] = _(""); - -const u8 gCaterpiePokedexText[] = _( - "Its short feet are tipped with suction\n" - "pads that enable it to tirelessly climb\n" - "slopes and walls."); - -const u8 gCaterpiePokedexTextUnused[] = _(""); - -const u8 gMetapodPokedexText[] = _( - "This POKéMON is vulnerable to attack\n" - "while its shell is soft, exposing its weak\n" - "and tender body."); - -const u8 gMetapodPokedexTextUnused[] = _( - " "); - -const u8 gButterfreePokedexText[] = _( - "In battle, it flaps its wings at great\n" - "speed to release highly toxic dust into\n" - "the air."); - -const u8 gButterfreePokedexTextUnused[] = _( - " "); - -const u8 gWeedlePokedexText[] = _( - "Often found in forests, eating leaves.\n" - "It has a sharp stinger on its head that\n" - "injects poison."); - -const u8 gWeedlePokedexTextUnused[] = _(""); - -const u8 gKakunaPokedexText[] = _( - "Almost incapable of moving, this POKéMON\n" - "can only harden its shell to protect\n" - "itself when it is in danger."); - -const u8 gKakunaPokedexTextUnused[] = _(""); - -const u8 gBeedrillPokedexText[] = _( - "It flies at high speed and attacks using \n" - "the large venomous stingers on its\n" - "forelegs and tail."); - -const u8 gBeedrillPokedexTextUnused[] = _(""); - -const u8 gPidgeyPokedexText[] = _( - "A common sight in forests and woods.\n" - "It flaps its wings at ground level to kick\n" - "up blinding sand."); - -const u8 gPidgeyPokedexTextUnused[] = _(""); - -const u8 gPidgeottoPokedexText[] = _( - "Very protective of its sprawling\n" - "territorial area, this POKéMON will\n" - "fiercely peck at any intruder."); - -const u8 gPidgeottoPokedexTextUnused[] = _(""); - -const u8 gPidgeotPokedexText[] = _( - "When hunting, it skims the surface of\n" - "water at high speed to pick off unwary\n" - "prey such as MAGIKARP."); - -const u8 gPidgeotPokedexTextUnused[] = _(""); - -const u8 gRattataPokedexText[] = _( - "Bites anything when it attacks. Small and\n" - "very quick, it is a common sight in many\n" - "places."); - -const u8 gRattataPokedexTextUnused[] = _(""); - -const u8 gRaticatePokedexText[] = _( - "It uses its whiskers to maintain its\n" - "balance. It apparently slows down if\n" - "they are cut off."); - -const u8 gRaticatePokedexTextUnused[] = _(""); - -const u8 gSpearowPokedexText[] = _( - "Eats bugs in grassy areas. It has to flap\n" - "its short wings at high speed to stay\n" - "airborne."); - -const u8 gSpearowPokedexTextUnused[] = _(""); - -const u8 gFearowPokedexText[] = _( - "With its huge and magnificent wings, it can\n" - "keep aloft without ever having to land\n" - "for rest."); - -const u8 gFearowPokedexTextUnused[] = _(""); - -const u8 gEkansPokedexText[] = _( - "Moving silently and stealthily, it eats\n" - "the eggs of birds, such as PIDGEY\n" - "and SPEAROW, whole."); - -const u8 gEkansPokedexTextUnused[] = _(""); - -const u8 gArbokPokedexText[] = _( - "It is rumored that the ferocious warning\n" - "markings on its belly differ from area to\n" - "area."); - -const u8 gArbokPokedexTextUnused[] = _(""); - -const u8 gPikachuPokedexText[] = _( - "When several of these POKéMON gather,\n" - "their electricity can build and cause\n" - "lightning storms."); - -const u8 gPikachuPokedexTextUnused[] = _(""); - -const u8 gRaichuPokedexText[] = _( - "Its long tail serves as a ground to\n" - "protect itself from its own high-voltage\n" - "power."); - -const u8 gRaichuPokedexTextUnused[] = _(""); - -const u8 gSandshrewPokedexText[] = _( - "Burrows deep underground in arid locations\n" - "far from water. It only emerges to hunt\n" - "for prey."); - -const u8 gSandshrewPokedexTextUnused[] = _(""); - -const u8 gSandslashPokedexText[] = _( - "Curls up into a spiny ball when\n" - "threatened. It can roll while curled up\n" - "to attack or escape."); - -const u8 gSandslashPokedexTextUnused[] = _(""); - -const u8 gNidoranFPokedexText[] = _( - "Although small, its venomous barbs render\n" - "this POKéMON dangerous. The female has\n" - "smaller horns."); - -const u8 gNidoranFPokedexTextUnused[] = _(""); - -const u8 gNidorinaPokedexText[] = _( - "The female's horns develop slowly.\n" - "Prefers physical attacks such as clawing\n" - "and biting."); - -const u8 gNidorinaPokedexTextUnused[] = _(""); - -const u8 gNidoqueenPokedexText[] = _( - "Its hard scales provide strong protection.\n" - "It uses its hefty bulk to execute\n" - "powerful moves."); - -const u8 gNidoqueenPokedexTextUnused[] = _(""); - -const u8 gNidoranMPokedexText[] = _( - "It stiffens its ears to sense danger.\n" - "The larger its horns, the more \n" - "powerful its secreted venom."); - -const u8 gNidoranMPokedexTextUnused[] = _(""); - -const u8 gNidorinoPokedexText[] = _( - "An aggressive POKéMON that is quick to\n" - "attack. The horn on its head secretes a\n" - "powerful venom."); - -const u8 gNidorinoPokedexTextUnused[] = _(""); - -const u8 gNidokingPokedexText[] = _( - "It uses its powerful tail in battle to\n" - "smash, constrict, then break the prey's\n" - "bones."); - -const u8 gNidokingPokedexTextUnused[] = _(""); - -const u8 gClefairyPokedexText[] = _( - "With its magical and cute appeal, it has \n" - "many admirers. It is rare and found only\n" - "in certain areas."); - -const u8 gClefairyPokedexTextUnused[] = _(""); - -const u8 gClefablePokedexText[] = _( - "A timid fairy POKéMON that is rarely seen,\n" - "it will run and hide the moment it senses\n" - "people."); - -const u8 gClefablePokedexTextUnused[] = _(""); - -const u8 gVulpixPokedexText[] = _( - "When it is born, it has just one snow-\n" - "white tail. The tail splits from its tip as\n" - "it grows older."); - -const u8 gVulpixPokedexTextUnused[] = _(""); - -const u8 gNinetalesPokedexText[] = _( - "Very smart and very vengeful. Grabbing\n" - "one of its many tails could result in a\n" - "1,000-year curse."); - -const u8 gNinetalesPokedexTextUnused[] = _(""); - -const u8 gJigglypuffPokedexText[] = _( - "When its huge eyes waver, it sings a\n" - "mysteriously soothing melody that lulls\n" - "its enemies to sleep."); - -const u8 gJigglypuffPokedexTextUnused[] = _(""); - -const u8 gWigglytuffPokedexText[] = _( - "The body is soft and rubbery. When\n" - "angered, it will suck in air and inflate\n" - "itself to an enormous size."); - -const u8 gWigglytuffPokedexTextUnused[] = _(""); - -const u8 gZubatPokedexText[] = _( - "It forms colonies in perpetually dark \n" - "places and uses ultrasonic waves to \n" - "identify and approach targets."); - -const u8 gZubatPokedexTextUnused[] = _(""); - -const u8 gGolbatPokedexText[] = _( - "Once it bites, it will not stop draining\n" - "energy from the victim even if it gets too\n" - "heavy to fly."); - -const u8 gGolbatPokedexTextUnused[] = _(""); - -const u8 gOddishPokedexText[] = _( - "During the day, it keeps its face buried\n" - "in the ground. At night, it wanders around\n" - "sowing its seeds."); - -const u8 gOddishPokedexTextUnused[] = _(""); - -const u8 gGloomPokedexText[] = _( - "The fluid that oozes from its mouth isn't\n" - "drool. It is a nectar that is used to\n" - "attract prey."); - -const u8 gGloomPokedexTextUnused[] = _(""); - -const u8 gVileplumePokedexText[] = _( - "The larger its petals, the more toxic\n" - "pollen it contains. Its big head is heavy\n" - "and hard to hold up."); - -const u8 gVileplumePokedexTextUnused[] = _(""); - -const u8 gParasPokedexText[] = _( - "Burrows to suck tree roots. The mushrooms\n" - "on its back grow by drawing nutrients from\n" - "the bug host."); - -const u8 gParasPokedexTextUnused[] = _(""); - -const u8 gParasectPokedexText[] = _( - "A host-parasite pair in which the parasite\n" - "mushroom has taken over the host bug.\n" - "Prefers damp places. "); - -const u8 gParasectPokedexTextUnused[] = _(""); - -const u8 gVenonatPokedexText[] = _( - "Lives in the shadows of tall trees where\n" - "it eats bugs. It is attracted by light\n" - "at night."); - -const u8 gVenonatPokedexTextUnused[] = _(""); - -const u8 gVenomothPokedexText[] = _( - "The dustlike scales covering its wings\n" - "are color-coded to indicate the kinds of\n" - "poison it has."); - -const u8 gVenomothPokedexTextUnused[] = _(""); - -const u8 gDiglettPokedexText[] = _( - "Lives about one yard underground where it\n" - "feeds on plant roots. It sometimes appears\n" - "aboveground."); - -const u8 gDiglettPokedexTextUnused[] = _(""); - -const u8 gDugtrioPokedexText[] = _( - "A team of DIGLETT triplets. It triggers\n" - "huge earthquakes by burrowing 60 miles\n" - "underground."); - -const u8 gDugtrioPokedexTextUnused[] = _(""); - -const u8 gMeowthPokedexText[] = _( - "Adores round objects. It wanders the\n" - "streets on a nightly basis to look for\n" - "dropped loose change."); - -const u8 gMeowthPokedexTextUnused[] = _(""); - -const u8 gPersianPokedexText[] = _( - "Although its fur has many admirers, it is\n" - "tough to raise as a pet because of its\n" - "fickle meanness."); - -const u8 gPersianPokedexTextUnused[] = _(""); - -const u8 gPsyduckPokedexText[] = _( - "While lulling its enemies with its vacant\n" - "look, this wily POKéMON will use\n" - "psychokinetic powers."); - -const u8 gPsyduckPokedexTextUnused[] = _(""); - -const u8 gGolduckPokedexText[] = _( - "Often seen swimming elegantly by\n" - "lakeshores. It is often mistaken for the\n" - "Japanese monster Kappa."); - -const u8 gGolduckPokedexTextUnused[] = _(""); - -const u8 gMankeyPokedexText[] = _( - "Extremely quick to anger. It could be\n" - "docile one moment, then thrashing away \n" - "the next instant."); - -const u8 gMankeyPokedexTextUnused[] = _(""); - -const u8 gPrimeapePokedexText[] = _( - "Always furious and tenacious to boot.\n" - "It will not abandon chasing its quarry\n" - "until it catches up."); - -const u8 gPrimeapePokedexTextUnused[] = _(""); - -const u8 gGrowlithePokedexText[] = _( - "It is very protective of its territory.\n" - "It will bark and bite to repel intruders\n" - "from its space."); - -const u8 gGrowlithePokedexTextUnused[] = _(""); - -const u8 gArcaninePokedexText[] = _( - "A POKéMON that has long been admired\n" - "for its beauty. It runs agilely as if\n" - "on wings."); - -const u8 gArcaninePokedexTextUnused[] = _(""); - -const u8 gPoliwagPokedexText[] = _( - "Its newly grown legs prevent it from\n" - "walking well. It appears to prefer\n" - "swimming over walking."); - -const u8 gPoliwagPokedexTextUnused[] = _(""); - -const u8 gPoliwhirlPokedexText[] = _( - "It can live in or out of water. When out\n" - "of water, it constantly sweats to keep its\n" - "body slimy."); - -const u8 gPoliwhirlPokedexTextUnused[] = _(""); - -const u8 gPoliwrathPokedexText[] = _( - "A swimmer adept at both the front crawl\n" - "and breaststroke. Easily overtakes the\n" - "best human swimmers."); - -const u8 gPoliwrathPokedexTextUnused[] = _(""); - -const u8 gAbraPokedexText[] = _( - "Using its ability to read minds, it will\n" - "sense impending danger and TELEPORT to\n" - "safety."); - -const u8 gAbraPokedexTextUnused[] = _(""); - -const u8 gKadabraPokedexText[] = _( - "It emits special alpha waves from its\n" - "body that induce headaches just by being\n" - "close."); - -const u8 gKadabraPokedexTextUnused[] = _(""); - -const u8 gAlakazamPokedexText[] = _( - "Its brain can outperform a supercomputer.\n" - "Its IQ (intelligence quotient) is said to\n" - "be around 5,000."); - -const u8 gAlakazamPokedexTextUnused[] = _(""); - -const u8 gMachopPokedexText[] = _( - "Loves to build its muscles. It trains in\n" - "all styles of martial arts to become even\n" - "stronger."); - -const u8 gMachopPokedexTextUnused[] = _(""); - -const u8 gMachokePokedexText[] = _( - "Its muscular body is so powerful, it must\n" - "wear a power-save belt to be able to\n" - "regulate its motions."); - -const u8 gMachokePokedexTextUnused[] = _(""); - -const u8 gMachampPokedexText[] = _( - "Its superpowerful punches are said to\n" - "knock the victim flying clear over the\n" - "horizon."); - -const u8 gMachampPokedexTextUnused[] = _(""); - -const u8 gBellsproutPokedexText[] = _( - "A carnivorous POKéMON that traps and eats\n" - "bugs. It appears to use its root feet to\n" - "replenish moisture."); - -const u8 gBellsproutPokedexTextUnused[] = _(""); - -const u8 gWeepinbellPokedexText[] = _( - "It spits out POISONPOWDER to immobilize\n" - "the enemy and then finishes it with a\n" - "spray of ACID."); - -const u8 gWeepinbellPokedexTextUnused[] = _(""); - -const u8 gVictreebelPokedexText[] = _( - "Said to live in huge colonies deep in\n" - "jungles, although no one has ever\n" - "returned from there."); - -const u8 gVictreebelPokedexTextUnused[] = _(""); - -const u8 gTentacoolPokedexText[] = _( - "Drifts in shallow seas. Anglers who hook\n" - "them by accident are often punished by\n" - "their stingers."); - -const u8 gTentacoolPokedexTextUnused[] = _(""); - -const u8 gTentacruelPokedexText[] = _( - "The tentacles are normally kept short.\n" - "On hunts, they are extended to ensnare\n" - "and immobilize prey."); - -const u8 gTentacruelPokedexTextUnused[] = _(""); - -const u8 gGeodudePokedexText[] = _( - "Found in fields and mountains. Mistaking\n" - "them for boulders, people often step or\n" - "trip on them."); - -const u8 gGeodudePokedexTextUnused[] = _(""); - -const u8 gGravelerPokedexText[] = _( - "Rolls down slopes to move. It rolls over\n" - "any obstacle without slowing or changing\n" - "its direction."); - -const u8 gGravelerPokedexTextUnused[] = _(""); - -const u8 gGolemPokedexText[] = _( - "Its boulder-like body is extremely hard.\n" - "It can easily withstand dynamite blasts\n" - "without taking damage."); - -const u8 gGolemPokedexTextUnused[] = _(""); - -const u8 gPonytaPokedexText[] = _( - "Its hooves are ten times harder than\n" - "diamond. It can trample anything\n" - "completely flat in little time."); - -const u8 gPonytaPokedexTextUnused[] = _(""); - -const u8 gRapidashPokedexText[] = _( - "Very competitive, this POKéMON will chase\n" - "anything that moves fast in the hopes of\n" - "racing it."); - -const u8 gRapidashPokedexTextUnused[] = _(""); - -const u8 gSlowpokePokedexText[] = _( - "Incredibly slow and dopey. It takes five\n" - "seconds for it to feel pain when under\n" - "attack."); - -const u8 gSlowpokePokedexTextUnused[] = _(""); - -const u8 gSlowbroPokedexText[] = _( - "The SHELLDER that latches onto\n" - "SLOWPOKE's tail is said to feed on the\n" - "host's leftover scraps."); - -const u8 gSlowbroPokedexTextUnused[] = _(""); - -const u8 gMagnemitePokedexText[] = _( - "Uses antigravity to stay suspended.\n" - "Appears without warning and uses THUNDER\n" - "WAVE and similar moves."); - -const u8 gMagnemitePokedexTextUnused[] = _(""); - -const u8 gMagnetonPokedexText[] = _( - "Formed by several MAGNEMITE linked\n" - "together. They frequently appear when\n" - "sunspots flare up."); - -const u8 gMagnetonPokedexTextUnused[] = _(""); - -const u8 gFarfetchdPokedexText[] = _( - "The plant stalk it holds is its weapon.\n" - "The stalk is used like a sword to cut all\n" - "sorts of things."); - -const u8 gFarfetchdPokedexTextUnused[] = _(""); - -const u8 gDoduoPokedexText[] = _( - "A bird that makes up for its poor flying\n" - "with its fast foot speed. Leaves giant\n" - "footprints."); - -const u8 gDoduoPokedexTextUnused[] = _(""); - -const u8 gDodrioPokedexText[] = _( - "Uses its three brains to execute complex\n" - "plans. While two heads sleep, one head is\n" - "said to stay awake."); - -const u8 gDodrioPokedexTextUnused[] = _(""); - -const u8 gSeelPokedexText[] = _( - "The protruding horn on its head is very\n" - "hard. It is used for bashing through thick\n" - "icebergs."); - -const u8 gSeelPokedexTextUnused[] = _(""); - -const u8 gDewgongPokedexText[] = _( - "It stores thermal energy in the body.\n" - "It swims at a steady eight knots even in\n" - "intensely cold waters."); - -const u8 gDewgongPokedexTextUnused[] = _(""); - -const u8 gGrimerPokedexText[] = _( - "Appears in filthy areas. It thrives by\n" - "sucking up polluted sludge that is pumped\n" - "out of factories."); - -const u8 gGrimerPokedexTextUnused[] = _(""); - -const u8 gMukPokedexText[] = _( - "Thickly covered with a filthy, vile\n" - "sludge. It is so toxic, even its footprints\n" - "contain poison."); - -const u8 gMukPokedexTextUnused[] = _(""); - -const u8 gShellderPokedexText[] = _( - "Its hard shell repels any kind of attack.\n" - "It is vulnerable only when its shell is\n" - "open."); - -const u8 gShellderPokedexTextUnused[] = _(""); - -const u8 gCloysterPokedexText[] = _( - "When attacked, it launches its horns in\n" - "quick volleys. Its innards have never been\n" - "seen."); - -const u8 gCloysterPokedexTextUnused[] = _(""); - -const u8 gGastlyPokedexText[] = _( - "Almost invisible, this gaseous POKéMON\n" - "cloaks the target and puts it to sleep\n" - "without notice."); - -const u8 gGastlyPokedexTextUnused[] = _(""); - -const u8 gHaunterPokedexText[] = _( - "Because of its ability to slip through\n" - "block walls, it is said to be from another\n" - "dimension."); - -const u8 gHaunterPokedexTextUnused[] = _(""); - -const u8 gGengarPokedexText[] = _( - "On the night of a full moon, if shadows\n" - "move on their own and laugh, it must be\n" - "GENGAR's doing."); - -const u8 gGengarPokedexTextUnused[] = _(""); - -const u8 gOnixPokedexText[] = _( - "As it grows, the stone portions of its\n" - "body harden to become similar to\n" - "black-colored diamonds."); - -const u8 gOnixPokedexTextUnused[] = _(""); - -const u8 gDrowzeePokedexText[] = _( - "Puts enemies to sleep, then eats their\n" - "dreams. Occasionally gets sick from eating\n" - "only bad dreams."); - -const u8 gDrowzeePokedexTextUnused[] = _(""); - -const u8 gHypnoPokedexText[] = _( - "When it locks eyes with an enemy, it will\n" - "use a mix of PSI moves such as HYPNOSIS\n" - "and CONFUSION."); - -const u8 gHypnoPokedexTextUnused[] = _(""); - -const u8 gKrabbyPokedexText[] = _( - "Its pincers are not only powerful weapons,\n" - "they are used for balance when walking\n" - "sideways."); - -const u8 gKrabbyPokedexTextUnused[] = _(""); - -const u8 gKinglerPokedexText[] = _( - "The large pincer has 10,000-horsepower\n" - "crushing force. However, its huge size\n" - "makes it unwieldy to use."); - -const u8 gKinglerPokedexTextUnused[] = _(""); - -const u8 gVoltorbPokedexText[] = _( - "Usually found in power plants. Easily\n" - "mistaken for a POKé BALL, it has\n" - "zapped many people."); - -const u8 gVoltorbPokedexTextUnused[] = _(""); - -const u8 gElectrodePokedexText[] = _( - "It stores electric energy under very high\n" - "pressure. It often explodes with little or\n" - "no provocation."); - -const u8 gElectrodePokedexTextUnused[] = _(""); - -const u8 gExeggcutePokedexText[] = _( - "It is often mistaken for eggs. When\n" - "disturbed, they quickly gather and attack\n" - "in swarms."); - -const u8 gExeggcutePokedexTextUnused[] = _(""); - -const u8 gExeggutorPokedexText[] = _( - "It is said that on rare occasions, one\n" - "of its heads will drop off and continue on\n" - "as an EXEGGCUTE."); - -const u8 gExeggutorPokedexTextUnused[] = _(""); - -const u8 gCubonePokedexText[] = _( - "Because it never removes its skull helmet,\n" - "no one has ever seen this POKéMON's real\n" - "face."); - -const u8 gCubonePokedexTextUnused[] = _(""); - -const u8 gMarowakPokedexText[] = _( - "The bone it holds is its key weapon.\n" - "It throws the bone skillfully like a\n" - "boomerang to KO targets."); - -const u8 gMarowakPokedexTextUnused[] = _(""); - -const u8 gHitmonleePokedexText[] = _( - "When in a hurry, its legs lengthen\n" - "progressively. It runs smoothly with\n" - "extra-long, loping strides."); - -const u8 gHitmonleePokedexTextUnused[] = _(""); - -const u8 gHitmonchanPokedexText[] = _( - "While apparently doing nothing, it fires\n" - "punches in lightning-fast volleys that are\n" - "impossible to see."); - -const u8 gHitmonchanPokedexTextUnused[] = _(""); - -const u8 gLickitungPokedexText[] = _( - "Its tongue can be extended like a\n" - "chameleon's. It leaves a tingling\n" - "sensation when it licks enemies."); - -const u8 gLickitungPokedexTextUnused[] = _(""); - -const u8 gKoffingPokedexText[] = _( - "Because it stores several kinds of toxic\n" - "gases in its body, it is prone to\n" - "exploding without warning."); - -const u8 gKoffingPokedexTextUnused[] = _(""); - -const u8 gWeezingPokedexText[] = _( - "Where two kinds of poison gases meet, two\n" - "KOFFING can fuse into a WEEZING over\n" - "many years."); - -const u8 gWeezingPokedexTextUnused[] = _(""); - -const u8 gRhyhornPokedexText[] = _( - "Its massive bones are 1,000 times harder\n" - "than human bones. Its TACKLE can knock a\n" - "semitrailer flying."); - -const u8 gRhyhornPokedexTextUnused[] = _(""); - -const u8 gRhydonPokedexText[] = _( - "Protected by an armor-like hide, it is\n" - "capable of living in molten lava of 3,600\n" - "degrees Fahrenheit."); - -const u8 gRhydonPokedexTextUnused[] = _(""); - -const u8 gChanseyPokedexText[] = _( - "A rare and elusive POKéMON that is said\n" - "to bring happiness to those who manage to\n" - "catch one."); - -const u8 gChanseyPokedexTextUnused[] = _(""); - -const u8 gTangelaPokedexText[] = _( - "The whole body is swathed with wide vines\n" - "that are similar to seaweed. The vines\n" - "sway as it walks."); - -const u8 gTangelaPokedexTextUnused[] = _(""); - -const u8 gKangaskhanPokedexText[] = _( - "The infant rarely ventures out of its\n" - "mother's protective pouch until it is\n" - "three years old."); - -const u8 gKangaskhanPokedexTextUnused[] = _(""); - -const u8 gHorseaPokedexText[] = _( - "Known to shoot down flying bugs with\n" - "precision blasts of ink from the surface\n" - "of the water."); - -const u8 gHorseaPokedexTextUnused[] = _(""); - -const u8 gSeadraPokedexText[] = _( - "It is capable of swimming backwards by\n" - "rapidly flapping its winglike pectoral fins\n" - "and stout tail."); - -const u8 gSeadraPokedexTextUnused[] = _(""); - -const u8 gGoldeenPokedexText[] = _( - "Its tail fin billows like an elegant\n" - "ballroom dress, giving it the nickname of\n" - "“The Water Queen.”"); - -const u8 gGoldeenPokedexTextUnused[] = _(""); - -const u8 gSeakingPokedexText[] = _( - "In the autumn spawning season, they can\n" - "be seen swimming powerfully up rivers and\n" - "creeks."); - -const u8 gSeakingPokedexTextUnused[] = _(""); - -const u8 gStaryuPokedexText[] = _( - "An enigmatic POKéMON that can effortlessly\n" - "regenerate any appendage it loses in\n" - "battle."); - -const u8 gStaryuPokedexTextUnused[] = _(""); - -const u8 gStarmiePokedexText[] = _( - "Its central core glows with the seven\n" - "colors of the rainbow. Some people value\n" - "the core as a gem."); - -const u8 gStarmiePokedexTextUnused[] = _(""); - -const u8 gMrmimePokedexText[] = _( - "If interrupted while it is miming, it will\n" - "suddenly DOUBLESLAP the offender with its\n" - "broad hands."); - -const u8 gMrmimePokedexTextUnused[] = _(""); - -const u8 gScytherPokedexText[] = _( - "With ninja-like agility and speed, it can\n" - "create the illusion that there is more\n" - "than one of itself."); - -const u8 gScytherPokedexTextUnused[] = _(""); - -const u8 gJynxPokedexText[] = _( - "It seductively wiggles its hips as it\n" - "walks. It can cause people to dance in\n" - "unison with it."); - -const u8 gJynxPokedexTextUnused[] = _(""); - -const u8 gElectabuzzPokedexText[] = _( - "Normally found near power plants, they\n" - "can wander away and cause major\n" - "blackouts in cities."); - -const u8 gElectabuzzPokedexTextUnused[] = _(""); - -const u8 gMagmarPokedexText[] = _( - "Its body always burns with an orange glow\n" - "that enables it to hide perfectly amidst\n" - "flames."); - -const u8 gMagmarPokedexTextUnused[] = _(""); - -const u8 gPinsirPokedexText[] = _( - "If it fails to crush the foe in its\n" - "pincers, it will swing around and toss\n" - "the opponent."); - -const u8 gPinsirPokedexTextUnused[] = _(""); - -const u8 gTaurosPokedexText[] = _( - "When it targets an enemy, it charges\n" - "furiously while whipping its body with its\n" - "long tails."); - -const u8 gTaurosPokedexTextUnused[] = _(""); - -const u8 gMagikarpPokedexText[] = _( - "In the distant past, it was somewhat\n" - "stronger than the horribly weak\n" - "descendants that exist today."); - -const u8 gMagikarpPokedexTextUnused[] = _(""); - -const u8 gGyaradosPokedexText[] = _( - "Rarely seen in the wild. Huge and vicious,\n" - "it is capable of destroying entire cities\n" - "in a rage."); - -const u8 gGyaradosPokedexTextUnused[] = _(""); - -const u8 gLaprasPokedexText[] = _( - "A POKéMON that has been overhunted\n" - "almost to extinction. It can ferry people\n" - "on its back."); - -const u8 gLaprasPokedexTextUnused[] = _(""); - -const u8 gDittoPokedexText[] = _( - "Capable of copying an opponent's genetic\n" - "code to instantly transform itself into a\n" - "duplicate of the enemy."); - -const u8 gDittoPokedexTextUnused[] = _(""); - -const u8 gEeveePokedexText[] = _( - "Its genetic code is irregular. It may\n" - "mutate if it is exposed to radiation from\n" - "element STONES."); - -const u8 gEeveePokedexTextUnused[] = _(""); - -const u8 gVaporeonPokedexText[] = _( - "Lives close to water. Its long tail is\n" - "ridged with a fin which is often mistaken\n" - "for a mermaid's."); - -const u8 gVaporeonPokedexTextUnused[] = _(""); - -const u8 gJolteonPokedexText[] = _( - "It accumulates negative ions in the\n" - "atmosphere to blast out 10,000-volt\n" - "lightning bolts."); - -const u8 gJolteonPokedexTextUnused[] = _(""); - -const u8 gFlareonPokedexText[] = _( - "When storing thermal energy in its body,\n" - "its temperature can soar to over 1,600\n" - "degrees Fahrenheit."); - -const u8 gFlareonPokedexTextUnused[] = _(""); - -const u8 gPorygonPokedexText[] = _( - "A POKéMON that consists entirely of\n" - "programming code. It is capable of moving\n" - "freely in cyberspace."); - -const u8 gPorygonPokedexTextUnused[] = _(""); - -const u8 gOmanytePokedexText[] = _( - "Although long extinct, in rare cases, it\n" - "can be genetically regenerated from\n" - "fossils."); - -const u8 gOmanytePokedexTextUnused[] = _(""); - -const u8 gOmastarPokedexText[] = _( - "Despite having strong fangs and tentacles,\n" - "it went extinct when its heavy shell made\n" - "it unable to catch prey."); - -const u8 gOmastarPokedexTextUnused[] = _(""); - -const u8 gKabutoPokedexText[] = _( - "A POKéMON that was regenerated from a\n" - "fossil found in what was once the ocean\n" - "floor long ago."); - -const u8 gKabutoPokedexTextUnused[] = _(""); - -const u8 gKabutopsPokedexText[] = _( - "Its sleek shape is perfect for swimming.\n" - "It slashes prey with its claws and drains\n" - "their fluids."); - -const u8 gKabutopsPokedexTextUnused[] = _(""); - -const u8 gAerodactylPokedexText[] = _( - "A ferocious, prehistoric POKéMON that\n" - "goes for the enemy's throat with its\n" - "serrated, sawlike fangs."); - -const u8 gAerodactylPokedexTextUnused[] = _(""); - -const u8 gSnorlaxPokedexText[] = _( - "Very lazy. Just eats and sleeps. As its\n" - "rotund bulk builds, it becomes steadily\n" - "more slothful."); - -const u8 gSnorlaxPokedexTextUnused[] = _(""); - -const u8 gArticunoPokedexText[] = _( - "A legendary bird POKéMON that is said to\n" - "appear to doomed people who are lost in\n" - "icy mountains."); - -const u8 gArticunoPokedexTextUnused[] = _(""); - -const u8 gZapdosPokedexText[] = _( - "A legendary bird POKéMON that is said to\n" - "appear from clouds while dropping\n" - "enormous lightning bolts."); - -const u8 gZapdosPokedexTextUnused[] = _(""); - -const u8 gMoltresPokedexText[] = _( - "It is said to be the legendary bird\n" - "POKéMON of fire. Every flap of its wings\n" - "creates a dazzling flare of flames."); - -const u8 gMoltresPokedexTextUnused[] = _(""); - -const u8 gDratiniPokedexText[] = _( - "Long considered a mythical POKéMON until\n" - "recently, when a small colony was found\n" - "living underwater."); - -const u8 gDratiniPokedexTextUnused[] = _(""); - -const u8 gDragonairPokedexText[] = _( - "A mystical POKéMON that exudes a gentle\n" - "aura. It is said to have the ability to\n" - "change the weather."); - -const u8 gDragonairPokedexTextUnused[] = _(""); - -const u8 gDragonitePokedexText[] = _( - "Only a very few people ever see this\n" - "POKéMON. Its intelligence is said to\n" - "match that of humans."); - -const u8 gDragonitePokedexTextUnused[] = _(""); - -const u8 gMewtwoPokedexText[] = _( - "It was created by a scientist after years\n" - "of horrific gene-splicing and DNA-\n" - "engineering experiments."); - -const u8 gMewtwoPokedexTextUnused[] = _(""); - -const u8 gMewPokedexText[] = _( - "So rare that it is still said to be a\n" - "mirage by many experts. Only a few people\n" - "have seen it worldwide."); - -const u8 gMewPokedexTextUnused[] = _(""); - -const u8 gChikoritaPokedexText[] = _( - "A sweet aroma gently wafts from the leaf\n" - "on its head. It is docile and loves to\n" - "soak up the sun's rays."); - -const u8 gChikoritaPokedexTextUnused[] = _(""); - -const u8 gBayleefPokedexText[] = _( - "The scent of spices comes from around\n" - "its neck. Somehow, sniffing it makes you\n" - "want to fight."); - -const u8 gBayleefPokedexTextUnused[] = _(""); - -const u8 gMeganiumPokedexText[] = _( - "The aroma that rises from its petals\n" - "contains a substance that calms aggressive\n" - "feelings."); - -const u8 gMeganiumPokedexTextUnused[] = _(""); - -const u8 gCyndaquilPokedexText[] = _( - "It is timid and always curls itself up in\n" - "a ball. If attacked, it flares up its back\n" - "for protection."); - -const u8 gCyndaquilPokedexTextUnused[] = _(""); - -const u8 gQuilavaPokedexText[] = _( - "Be careful if it turns its back during\n" - "battle. It means that it will attack with\n" - "the fire on its back."); - -const u8 gQuilavaPokedexTextUnused[] = _(""); - -const u8 gTyphlosionPokedexText[] = _( - "If its rage peaks, it becomes so hot that\n" - "anything that touches it will instantly go\n" - "up in flames."); - -const u8 gTyphlosionPokedexTextUnused[] = _(""); - -const u8 gTotodilePokedexText[] = _( - "Its well-developed jaws are powerful and\n" - "capable of crushing anything. Even its\n" - "TRAINER must be careful."); - -const u8 gTotodilePokedexTextUnused[] = _(""); - -const u8 gCroconawPokedexText[] = _( - "If it loses a fang, a new one grows back\n" - "in its place. There are always 48 fangs\n" - "lining its mouth."); - -const u8 gCroconawPokedexTextUnused[] = _(""); - -const u8 gFeraligatrPokedexText[] = _( - "When it bites with its massive and\n" - "powerful jaws, it shakes its head and\n" - "savagely tears up its victim."); - -const u8 gFeraligatrPokedexTextUnused[] = _(""); - -const u8 gSentretPokedexText[] = _( - "A very cautious POKéMON, it raises itself\n" - "up using its tail to get a better view of\n" - "its surroundings."); - -const u8 gSentretPokedexTextUnused[] = _(""); - -const u8 gFurretPokedexText[] = _( - "It makes a nest to suit its long and skinny\n" - "body. The nest is impossible for other\n" - "POKéMON to enter."); - -const u8 gFurretPokedexTextUnused[] = _(""); - -const u8 gHoothootPokedexText[] = _( - "It always stands on one foot. It changes\n" - "feet so fast, the movement can rarely be\n" - "seen."); - -const u8 gHoothootPokedexTextUnused[] = _(""); - -const u8 gNoctowlPokedexText[] = _( - "Its eyes are specially adapted. They\n" - "concentrate even faint light and enable it\n" - "to see in the dark."); - -const u8 gNoctowlPokedexTextUnused[] = _(""); - -const u8 gLedybaPokedexText[] = _( - "It is very timid. It will be afraid to\n" - "move if it is alone. But it will be active\n" - "if it is in a group."); - -const u8 gLedybaPokedexTextUnused[] = _(""); - -const u8 gLedianPokedexText[] = _( - "When the stars flicker in the night sky, it\n" - "flutters about, scattering a glowing\n" - "powder."); - -const u8 gLedianPokedexTextUnused[] = _(""); - -const u8 gSpinarakPokedexText[] = _( - "It lies still in the same pose for days\n" - "in its web, waiting for its unsuspecting\n" - "prey to wander close."); - -const u8 gSpinarakPokedexTextUnused[] = _(""); - -const u8 gAriadosPokedexText[] = _( - "It spins string not only from its rear but\n" - "also from its mouth. It is hard to tell\n" - "which end is which."); - -const u8 gAriadosPokedexTextUnused[] = _(""); - -const u8 gCrobatPokedexText[] = _( - "It flies so silently through the dark on\n" - "its four wings that it may not be noticed\n" - "even when nearby."); - -const u8 gCrobatPokedexTextUnused[] = _(""); - -const u8 gChinchouPokedexText[] = _( - "It shoots positive and negative\n" - "electricity between the tips of its two\n" - "antennae and zaps its enemies."); - -const u8 gChinchouPokedexTextUnused[] = _(""); - -const u8 gLanturnPokedexText[] = _( - "The light it emits is so bright that it can\n" - "illuminate the sea's surface from a depth\n" - "of over three miles."); - -const u8 gLanturnPokedexTextUnused[] = _(""); - -const u8 gPichuPokedexText[] = _( - "It is not yet skilled at storing\n" - "electricity. It may send out a jolt if\n" - "amused or startled."); - -const u8 gPichuPokedexTextUnused[] = _(""); - -const u8 gCleffaPokedexText[] = _( - "Because of its unusual, starlike\n" - "silhouette, people believe that it came\n" - "here on a meteor."); - -const u8 gCleffaPokedexTextUnused[] = _(""); - -const u8 gIgglybuffPokedexText[] = _( - "It has a very soft body. If it starts to\n" - "roll, it will bounce all over and be\n" - "impossible to stop."); - -const u8 gIgglybuffPokedexTextUnused[] = _(""); - -const u8 gTogepiPokedexText[] = _( - "The shell seems to be filled with joy.\n" - "It is said that it will share good luck\n" - "when treated kindly."); - -const u8 gTogepiPokedexTextUnused[] = _(""); - -const u8 gTogeticPokedexText[] = _( - "They say that it will appear before\n" - "kindhearted, caring people and shower\n" - "them with happiness."); - -const u8 gTogeticPokedexTextUnused[] = _(""); - -const u8 gNatuPokedexText[] = _( - "Because its wings aren't yet fully grown,\n" - "it has to hop to get around. It is always\n" - "staring at something."); - -const u8 gNatuPokedexTextUnused[] = _(""); - -const u8 gXatuPokedexText[] = _( - "They say that it stays still and quiet\n" - "because it is seeing both the past and\n" - "future at the same time."); - -const u8 gXatuPokedexTextUnused[] = _(""); - -const u8 gMareepPokedexText[] = _( - "If static electricity builds in its body,\n" - "its fleece doubles in volume. Touching\n" - "it will shock you."); - -const u8 gMareepPokedexTextUnused[] = _(""); - -const u8 gFlaaffyPokedexText[] = _( - "As a result of storing too much\n" - "electricity, it developed patches where\n" - "even downy wool won't grow."); - -const u8 gFlaaffyPokedexTextUnused[] = _(""); - -const u8 gAmpharosPokedexText[] = _( - "The tail's tip shines brightly and can be\n" - "seen from far away. It acts as a beacon\n" - "for lost people."); - -const u8 gAmpharosPokedexTextUnused[] = _(""); - -const u8 gBellossomPokedexText[] = _( - "BELLOSSOM gather at times and appear to\n" - "dance. They say that the dance is a\n" - "ritual to summon the sun."); - -const u8 gBellossomPokedexTextUnused[] = _(""); - -const u8 gMarillPokedexText[] = _( - "The tip of its tail, which contains oil\n" - "that is lighter than water, lets it swim\n" - "without drowning."); - -const u8 gMarillPokedexTextUnused[] = _(""); - -const u8 gAzumarillPokedexText[] = _( - "By keeping still and listening intently, it\n" - "can even tell what is in wild, fast-moving\n" - "rivers."); - -const u8 gAzumarillPokedexTextUnused[] = _(""); - -const u8 gSudowoodoPokedexText[] = _( - "Although it always pretends to be a tree,\n" - "its composition appears to be closer to a\n" - "rock than a plant."); - -const u8 gSudowoodoPokedexTextUnused[] = _(""); - -const u8 gPolitoedPokedexText[] = _( - "If POLIWAG and POLIWHIRL hear its\n" - "echoing cry, they respond by gathering\n" - "from far and wide."); - -const u8 gPolitoedPokedexTextUnused[] = _(""); - -const u8 gHoppipPokedexText[] = _( - "To keep from being blown away by the\n" - "wind, they gather in clusters. They do\n" - "enjoy gentle breezes, though."); - -const u8 gHoppipPokedexTextUnused[] = _(""); - -const u8 gSkiploomPokedexText[] = _( - "The bloom on top of its head opens and\n" - "closes as the temperature fluctuates up\n" - "and down."); - -const u8 gSkiploomPokedexTextUnused[] = _(""); - -const u8 gJumpluffPokedexText[] = _( - "Once it catches the wind, it deftly\n" - "controls its cotton-puff spores to float,\n" - "even around the world."); - -const u8 gJumpluffPokedexTextUnused[] = _(""); - -const u8 gAipomPokedexText[] = _( - "Its tail is so powerful that it can use it\n" - "to grab a tree branch and hold itself up\n" - "in the air."); - -const u8 gAipomPokedexTextUnused[] = _(""); - -const u8 gSunkernPokedexText[] = _( - "It may drop out of the sky suddenly.\n" - "If attacked by a SPEAROW, it will\n" - "violently shake its leaves."); - -const u8 gSunkernPokedexTextUnused[] = _(""); - -const u8 gSunfloraPokedexText[] = _( - "It converts sunlight into energy. In the\n" - "darkness after sunset, it closes its petals\n" - "and becomes still."); - -const u8 gSunfloraPokedexTextUnused[] = _(""); - -const u8 gYanmaPokedexText[] = _( - "If it flaps its wings really fast, it can\n" - "generate shock waves that will shatter\n" - "windows in the area."); - -const u8 gYanmaPokedexTextUnused[] = _(""); - -const u8 gWooperPokedexText[] = _( - "This POKéMON lives in cold water. It will\n" - "leave the water to search for food when\n" - "it gets cold outside."); - -const u8 gWooperPokedexTextUnused[] = _(""); - -const u8 gQuagsirePokedexText[] = _( - "This carefree POKéMON has an easygoing\n" - "nature. While swimming, it always bumps\n" - "into boat hulls."); - -const u8 gQuagsirePokedexTextUnused[] = _(""); - -const u8 gEspeonPokedexText[] = _( - "It uses the fine hair that covers its body\n" - "to sense air currents and predict its\n" - "enemy's actions."); - -const u8 gEspeonPokedexTextUnused[] = _(""); - -const u8 gUmbreonPokedexText[] = _( - "When agitated, this POKéMON protects\n" - "itself by spraying poisonous sweat from its\n" - "pores."); - -const u8 gUmbreonPokedexTextUnused[] = _(""); - -const u8 gMurkrowPokedexText[] = _( - "Feared and loathed by many, it is\n" - "believed to bring misfortune to all those\n" - "who see it at night."); - -const u8 gMurkrowPokedexTextUnused[] = _(""); - -const u8 gSlowkingPokedexText[] = _( - "It has incredible intellect and intuition.\n" - "Whatever the situation, it remains calm\n" - "and collected."); - -const u8 gSlowkingPokedexTextUnused[] = _(""); - -const u8 gMisdreavusPokedexText[] = _( - "It likes playing mischievous tricks such as\n" - "screaming and wailing to startle people at\n" - "night. "); - -const u8 gMisdreavusPokedexTextUnused[] = _(""); - -const u8 gUnownPokedexText[] = _( - "Their shapes look like hieroglyphs on\n" - "ancient tablets. It is said that the two\n" - "are somehow related."); - -const u8 gUnownPokedexTextUnused[] = _(""); - -const u8 gWobbuffetPokedexText[] = _( - "It hates light and shock. If attacked,\n" - "it inflates its body to pump up its\n" - "counterstrike."); - -const u8 gWobbuffetPokedexTextUnused[] = _(""); - -const u8 gGirafarigPokedexText[] = _( - "Its tail has a small brain of its own.\n" - "Beware! If you get close, it may react\n" - "to your scent and bite."); - -const u8 gGirafarigPokedexTextUnused[] = _(""); - -const u8 gPinecoPokedexText[] = _( - "It likes to make its shell thicker by\n" - "adding layers of tree bark. The extra\n" - "weight doesn't bother it."); - -const u8 gPinecoPokedexTextUnused[] = _(""); - -const u8 gForretressPokedexText[] = _( - "Its entire body is shielded by a steel-\n" - "hard shell. What lurks inside the armor is\n" - "a total mystery."); - -const u8 gForretressPokedexTextUnused[] = _(""); - -const u8 gDunsparcePokedexText[] = _( - "When spotted, this POKéMON escapes\n" - "backward by furiously boring into the\n" - "ground with its tail."); - -const u8 gDunsparcePokedexTextUnused[] = _(""); - -const u8 gGligarPokedexText[] = _( - "It flies straight at its target's face,\n" - "then clamps down on the startled\n" - "victim to inject poison."); - -const u8 gGligarPokedexTextUnused[] = _(""); - -const u8 gSteelixPokedexText[] = _( - "Its body has been compressed deep under\n" - "the ground. As a result, it is even harder\n" - "than diamond."); - -const u8 gSteelixPokedexTextUnused[] = _(""); - -const u8 gSnubbullPokedexText[] = _( - "Although it looks frightening, it is\n" - "actually kind and affectionate. It is very\n" - "popular among women."); - -const u8 gSnubbullPokedexTextUnused[] = _(""); - -const u8 gGranbullPokedexText[] = _( - "It is actually timid and easily spooked.\n" - "If attacked, it flails about to fend off\n" - "its attacker."); - -const u8 gGranbullPokedexTextUnused[] = _(""); - -const u8 gQwilfishPokedexText[] = _( - "To fire its poison spikes, it must inflate\n" - "its body by drinking over 2.6 gallons of \n" - "water all at once."); - -const u8 gQwilfishPokedexTextUnused[] = _(""); - -const u8 gScizorPokedexText[] = _( - "It swings its eye-patterned pincers up to\n" - "scare its foes. This makes it look like it\n" - "has three heads."); - -const u8 gScizorPokedexTextUnused[] = _(""); - -const u8 gShucklePokedexText[] = _( - "The BERRIES it stores in its vaselike\n" - "shell decompose and become a gooey\n" - "liquid."); - -const u8 gShucklePokedexTextUnused[] = _(""); - -const u8 gHeracrossPokedexText[] = _( - "This powerful POKéMON thrusts its prized\n" - "horn under its enemies' bellies, then lifts\n" - "and throws them."); - -const u8 gHeracrossPokedexTextUnused[] = _(""); - -const u8 gSneaselPokedexText[] = _( - "Its paws conceal sharp claws.\n" - "If attacked, it suddenly extends the\n" - "claws and startles its enemy."); - -const u8 gSneaselPokedexTextUnused[] = _(""); - -const u8 gTeddiursaPokedexText[] = _( - "If it finds honey, its crescent mark glows.\n" - "It always licks its paws because they are\n" - "soaked with honey."); - -const u8 gTeddiursaPokedexTextUnused[] = _(""); - -const u8 gUrsaringPokedexText[] = _( - "Although it is a good climber, it prefers\n" - "to snap stout trees with its forelegs and\n" - "eat fallen BERRIES."); - -const u8 gUrsaringPokedexTextUnused[] = _(""); - -const u8 gSlugmaPokedexText[] = _( - "It never sleeps. It has to keep moving\n" - "because if it stopped, its magma body\n" - "would cool and harden."); - -const u8 gSlugmaPokedexTextUnused[] = _(""); - -const u8 gMagcargoPokedexText[] = _( - "The shell on its back is just skin that\n" - "has cooled and hardened. It breaks easily\n" - "with a slight touch."); - -const u8 gMagcargoPokedexTextUnused[] = _(""); - -const u8 gSwinubPokedexText[] = _( - "It rubs its snout on the ground to find\n" - "and dig up food. It sometimes discovers\n" - "hot springs."); - -const u8 gSwinubPokedexTextUnused[] = _(""); - -const u8 gPiloswinePokedexText[] = _( - "Because the long hair all over its body\n" - "obscures its sight, it just keeps charging\n" - "repeatedly."); - -const u8 gPiloswinePokedexTextUnused[] = _(""); - -const u8 gCorsolaPokedexText[] = _( - "It continuously sheds and grows. The tip\n" - "of its head is prized as a treasure for\n" - "its beauty."); - -const u8 gCorsolaPokedexTextUnused[] = _(""); - -const u8 gRemoraidPokedexText[] = _( - "It has superb accuracy. The water it\n" - "shoots out can strike even moving prey\n" - "from more than 100 yards."); - -const u8 gRemoraidPokedexTextUnused[] = _(""); - -const u8 gOctilleryPokedexText[] = _( - "It traps enemies with its suction-cupped\n" - "tentacles, then smashes them with its\n" - "rock-hard head."); - -const u8 gOctilleryPokedexTextUnused[] = _(""); - -const u8 gDelibirdPokedexText[] = _( - "It carries food all day long. There are\n" - "tales about lost people who were saved\n" - "by the food it had."); - -const u8 gDelibirdPokedexTextUnused[] = _(""); - -const u8 gMantinePokedexText[] = _( - "As it majestically swims, it doesn't care\n" - "if REMORAID attach to it to scavenge\n" - "for its leftovers."); - -const u8 gMantinePokedexTextUnused[] = _(""); - -const u8 gSkarmoryPokedexText[] = _( - "Its sturdy wings look heavy, but its bones\n" - "are hollow and light, allowing it to fly\n" - "freely in the sky."); - -const u8 gSkarmoryPokedexTextUnused[] = _(""); - -const u8 gHoundourPokedexText[] = _( - "It uses different kinds of cries for\n" - "communicating with others of its kind and\n" - "for pursuing prey."); - -const u8 gHoundourPokedexTextUnused[] = _(""); - -const u8 gHoundoomPokedexText[] = _( - "If you are burned by the flames it shoots\n" - "from its mouth, the pain will never go\n" - "away."); - -const u8 gHoundoomPokedexTextUnused[] = _(""); - -const u8 gKingdraPokedexText[] = _( - "It is said that it usually hides in\n" - "underwater caves. It can create\n" - "whirlpools by yawning."); - -const u8 gKingdraPokedexTextUnused[] = _(""); - -const u8 gPhanpyPokedexText[] = _( - "It swings its long snout around playfully,\n" - "but because it is so strong, this can be\n" - "dangerous."); - -const u8 gPhanpyPokedexTextUnused[] = _(""); - -const u8 gDonphanPokedexText[] = _( - "It has sharp, hard tusks and a rugged\n" - "hide. Its TACKLE is strong enough to\n" - "knock down a house."); - -const u8 gDonphanPokedexTextUnused[] = _(""); - -const u8 gPorygon2PokedexText[] = _( - "This upgraded version of PORYGON is\n" - "designed for space exploration. However,\n" - "it can't even fly."); - -const u8 gPorygon2PokedexTextUnused[] = _(""); - -const u8 gStantlerPokedexText[] = _( - "Its curved antlers subtly change the flow\n" - "of air to create a strange space where\n" - "reality is distorted."); - -const u8 gStantlerPokedexTextUnused[] = _(""); - -const u8 gSmearglePokedexText[] = _( - "A special fluid oozes from the tip of its\n" - "tail. It paints the fluid everywhere to\n" - "mark its territory."); - -const u8 gSmearglePokedexTextUnused[] = _(""); - -const u8 gTyroguePokedexText[] = _( - "It is always bursting with energy. To make\n" - "itself stronger, it keeps on fighting even\n" - "if it loses."); - -const u8 gTyroguePokedexTextUnused[] = _(""); - -const u8 gHitmontopPokedexText[] = _( - "If you become enchanted by its smooth,\n" - "elegant, dance-like kicks, you may get\n" - "drilled hard."); - -const u8 gHitmontopPokedexTextUnused[] = _(""); - -const u8 gSmoochumPokedexText[] = _( - "Its lips are the most sensitive parts on\n" - "its body. It always uses its lips first to\n" - "examine things."); - -const u8 gSmoochumPokedexTextUnused[] = _(""); - -const u8 gElekidPokedexText[] = _( - "It rotates its arms to generate\n" - "electricity, but it tires easily, so it\n" - "charges up only a little bit."); - -const u8 gElekidPokedexTextUnused[] = _(""); - -const u8 gMagbyPokedexText[] = _( - "Each and every time it inhales and\n" - "exhales, hot embers dribble out of its\n" - "mouth and nostrils."); - -const u8 gMagbyPokedexTextUnused[] = _(""); - -const u8 gMiltankPokedexText[] = _( - "Its milk is packed with nutrition, making\n" - "it the ultimate beverage for the sick or\n" - "weary."); - -const u8 gMiltankPokedexTextUnused[] = _(""); - -const u8 gBlisseyPokedexText[] = _( - "Anyone who takes even one bite of\n" - "BLISSEY's egg becomes unfailingly caring\n" - "and pleasant to everyone."); - -const u8 gBlisseyPokedexTextUnused[] = _(""); - -const u8 gRaikouPokedexText[] = _( - "The rain clouds it carries let it fire\n" - "thunderbolts at will. They say that it\n" - "descended with lightning."); - -const u8 gRaikouPokedexTextUnused[] = _(""); - -const u8 gEnteiPokedexText[] = _( - "Volcanoes erupt when it barks. Unable to\n" - "restrain its extreme power, it races\n" - "headlong around the land."); - -const u8 gEnteiPokedexTextUnused[] = _(""); - -const u8 gSuicunePokedexText[] = _( - "Said to be the reincarnation of north\n" - "winds, it can instantly purify filthy,\n" - "murky water."); - -const u8 gSuicunePokedexTextUnused[] = _(""); - -const u8 gLarvitarPokedexText[] = _( - "It feeds on soil. After it has eaten a\n" - "large mountain, it will fall asleep so it\n" - "can grow."); - -const u8 gLarvitarPokedexTextUnused[] = _(""); - -const u8 gPupitarPokedexText[] = _( - "Its shell is as hard as sheet rock, and it\n" - "is also very strong. Its THRASHING can\n" - "topple a mountain."); - -const u8 gPupitarPokedexTextUnused[] = _(""); - -const u8 gTyranitarPokedexText[] = _( - "Its body can't be harmed by any sort of\n" - "attack, so it is very eager to make\n" - "challenges against enemies."); - -const u8 gTyranitarPokedexTextUnused[] = _(""); - -const u8 gLugiaPokedexText[] = _( - "It is said that it quietly spends its time\n" - "deep at the bottom of the sea because\n" - "its powers are too strong."); - -const u8 gLugiaPokedexTextUnused[] = _(""); - -const u8 gHoOhPokedexText[] = _( - "Legends claim this POKéMON flies the\n" - "world's skies continuously on its\n" - "magnificent seven-colored wings."); - -const u8 gHoOhPokedexTextUnused[] = _(""); - -const u8 gCelebiPokedexText[] = _( - "This POKéMON wanders across time.\n" - "Grass and trees flourish in the forests in\n" - "which it has appeared."); - -const u8 gCelebiPokedexTextUnused[] = _(""); - -const u8 gTreeckoPokedexText[] = _( - "It quickly scales even vertical walls.\n" - "It senses humidity with its tail to predict\n" - "the next day's weather."); - -const u8 gTreeckoPokedexTextUnused[] = _(""); - -const u8 gGrovylePokedexText[] = _( - "Its strongly developed thigh muscles\n" - "give it astounding agility and jumping\n" - "performance."); - -const u8 gGrovylePokedexTextUnused[] = _(""); - -const u8 gSceptilePokedexText[] = _( - "The leaves on its forelegs are as sharp\n" - "as swords. It agilely leaps about the\n" - "branches of trees to strike."); - -const u8 gSceptilePokedexTextUnused[] = _(""); - -const u8 gTorchicPokedexText[] = _( - "It has a flame sac inside its belly that\n" - "perpetually burns. It feels warm if it is\n" - "hugged."); - -const u8 gTorchicPokedexTextUnused[] = _(""); - -const u8 gCombuskenPokedexText[] = _( - "It boosts its concentration by emitting\n" - "harsh cries. Its kicks have outstanding\n" - "destructive power."); - -const u8 gCombuskenPokedexTextUnused[] = _(""); - -const u8 gBlazikenPokedexText[] = _( - "When facing a tough foe, it looses flames\n" - "from its wrists. Its powerful legs let it\n" - "jump clear over buildings."); - -const u8 gBlazikenPokedexTextUnused[] = _(""); - -const u8 gMudkipPokedexText[] = _( - "Its large tail fin propels it through\n" - "water with powerful acceleration. It is\n" - "strong in spite of its size."); - -const u8 gMudkipPokedexTextUnused[] = _(""); - -const u8 gMarshtompPokedexText[] = _( - "It is at its best when on muddy ground\n" - "with poor footing. It quickly overwhelms\n" - "foes struggling in mud."); - -const u8 gMarshtompPokedexTextUnused[] = _(""); - -const u8 gSwampertPokedexText[] = _( - "Its arms are rock-hard. With one swing,\n" - "they can batter down its foe. It makes its\n" - "nest on beautiful beaches."); - -const u8 gSwampertPokedexTextUnused[] = _(""); - -const u8 gPoochyenaPokedexText[] = _( - "It has a very tenacious nature. Its acute\n" - "sense of smell lets it chase a chosen\n" - "prey without ever losing track."); - -const u8 gPoochyenaPokedexTextUnused[] = _(""); - -const u8 gMightyenaPokedexText[] = _( - "It will always obey the commands of a\n" - "skilled TRAINER. Its behavior arises from\n" - "its living in packs in ancient times."); - -const u8 gMightyenaPokedexTextUnused[] = _(""); - -const u8 gZigzagoonPokedexText[] = _( - "A POKéMON with abundant curiosity.\n" - "It shows an interest in everything, so it\n" - "always zigs and zags."); - -const u8 gZigzagoonPokedexTextUnused[] = _(""); - -const u8 gLinoonePokedexText[] = _( - "When running in a straight line, it can top\n" - "60 miles per hour. However, it has a\n" - "tough time with curved roads."); - -const u8 gLinoonePokedexTextUnused[] = _(""); - -const u8 gWurmplePokedexText[] = _( - "It lives amidst tall grass and in forests.\n" - "When attacked, it resists by pointing its\n" - "venomous spikes at the foe."); - -const u8 gWurmplePokedexTextUnused[] = _(""); - -const u8 gSilcoonPokedexText[] = _( - "It conserves its energy by moving as\n" - "little as possible. It awaits evolution\n" - "while drinking only a little rainwater."); - -const u8 gSilcoonPokedexTextUnused[] = _(""); - -const u8 gBeautiflyPokedexText[] = _( - "Despite its appearance, it has an\n" - "aggressive nature. It attacks by jabbing\n" - "with its long, thin mouth."); - -const u8 gBeautiflyPokedexTextUnused[] = _(""); - -const u8 gCascoonPokedexText[] = _( - "Its body, which is made of soft silk,\n" - "hardens over time. When cracks appear,\n" - "evolution is near."); - -const u8 gCascoonPokedexTextUnused[] = _(""); - -const u8 gDustoxPokedexText[] = _( - "It scatters horribly toxic dust when it\n" - "senses danger. They tend to gather in the\n" - "glow of streetlamps at night."); - -const u8 gDustoxPokedexTextUnused[] = _(""); - -const u8 gLotadPokedexText[] = _( - "It searches about for clean water. If it\n" - "does not drink water for too long, the\n" - "leaf on its head wilts."); - -const u8 gLotadPokedexTextUnused[] = _(""); - -const u8 gLombrePokedexText[] = _( - "It lives at the water's edge where it is\n" - "sunny. It sleeps on a bed of water grass\n" - "by day and becomes active at night."); - -const u8 gLombrePokedexTextUnused[] = _(""); - -const u8 gLudicoloPokedexText[] = _( - "The rhythm of bright, festive music\n" - "activates LUDICOLO's cells, making it more\n" - "powerful."); - -const u8 gLudicoloPokedexTextUnused[] = _(""); - -const u8 gSeedotPokedexText[] = _( - "If it remains still, it becomes impossible\n" - "to distinguish from real nuts. It delights\n" - "in surprising foraging PIDGEY."); - -const u8 gSeedotPokedexTextUnused[] = _(""); - -const u8 gNuzleafPokedexText[] = _( - "They live in holes bored in large trees.\n" - "The sound of NUZLEAF's grass flute fills\n" - "listeners with dread."); - -const u8 gNuzleafPokedexTextUnused[] = _(""); - -const u8 gShiftryPokedexText[] = _( - "A POKéMON that was feared as a forest\n" - "guardian. It can read the foe's mind and\n" - "take preemptive action."); - -const u8 gShiftryPokedexTextUnused[] = _(""); - -const u8 gTaillowPokedexText[] = _( - "It dislikes cold seasons. They migrate to\n" - "other lands in search of warmth, flying\n" - "over 180 miles a day."); - -const u8 gTaillowPokedexTextUnused[] = _(""); - -const u8 gSwellowPokedexText[] = _( - "If its two tail feathers are standing at\n" - "attention, it is proof of good health.\n" - "It soars elegantly in the sky."); - -const u8 gSwellowPokedexTextUnused[] = _(""); - -const u8 gWingullPokedexText[] = _( - "It rides upon ocean winds as if it were\n" - "a glider. In the winter, it hides food\n" - "around its nest."); - -const u8 gWingullPokedexTextUnused[] = _(""); - -const u8 gPelipperPokedexText[] = _( - "It is a flying transporter that carries\n" - "small POKéMON in its beak. It bobs on the\n" - "waves to rest its wings."); - -const u8 gPelipperPokedexTextUnused[] = _(""); - -const u8 gRaltsPokedexText[] = _( - "It is highly attuned to the emotions of\n" - "people and POKéMON. It hides if it senses\n" - "hostility."); - -const u8 gRaltsPokedexTextUnused[] = _(""); - -const u8 gKirliaPokedexText[] = _( - "The cheerful spirit of its TRAINER gives\n" - "it energy for its psychokinetic power.\n" - "It spins and dances when happy."); - -const u8 gKirliaPokedexTextUnused[] = _(""); - -const u8 gGardevoirPokedexText[] = _( - "It has the power to predict the future.\n" - "Its power peaks when it is protecting its\n" - "TRAINER."); - -const u8 gGardevoirPokedexTextUnused[] = _(""); - -const u8 gSurskitPokedexText[] = _( - "They usually live on ponds, but after an\n" - "evening shower, they may appear on\n" - "puddles in towns."); - -const u8 gSurskitPokedexTextUnused[] = _(""); - -const u8 gMasquerainPokedexText[] = _( - "The antennae have distinctive patterns\n" - "that look like eyes. When it rains, they\n" - "grow heavy, making flight impossible."); - -const u8 gMasquerainPokedexTextUnused[] = _(""); - -const u8 gShroomishPokedexText[] = _( - "It prefers damp places. By day it remains\n" - "still in the forest shade. It releases\n" - "toxic powder from its head."); - -const u8 gShroomishPokedexTextUnused[] = _(""); - -const u8 gBreloomPokedexText[] = _( - "The seeds on its tail are made of toxic\n" - "spores. It knocks out foes with quick,\n" - "virtually invisible punches."); - -const u8 gBreloomPokedexTextUnused[] = _(""); - -const u8 gSlakothPokedexText[] = _( - "It sleeps for 20 hours every day. Making\n" - "drowsy those that see it is one of\n" - "its abilities."); - -const u8 gSlakothPokedexTextUnused[] = _(""); - -const u8 gVigorothPokedexText[] = _( - "It is always hungry because it won't stop\n" - "rampaging. Even while it is eating, it\n" - "can't keep still."); - -const u8 gVigorothPokedexTextUnused[] = _(""); - -const u8 gSlakingPokedexText[] = _( - "It is the world's most slothful POKéMON.\n" - "However, it can exert horrifying power by\n" - "releasing pent-up energy all at once."); - -const u8 gSlakingPokedexTextUnused[] = _(""); - -const u8 gNincadaPokedexText[] = _( - "Because it lived almost entirely\n" - "underground, it is nearly blind.\n" - "It uses its antennae instead."); - -const u8 gNincadaPokedexTextUnused[] = _(""); - -const u8 gNinjaskPokedexText[] = _( - "This POKéMON is so quick, it is said to\n" - "be able to avoid any attack. It loves to\n" - "feed on tree sap."); - -const u8 gNinjaskPokedexTextUnused[] = _(""); - -const u8 gShedinjaPokedexText[] = _( - "A most peculiar POKéMON that somehow\n" - "appears in a POKé BALL when a NINCADA\n" - "evolves."); - -const u8 gShedinjaPokedexTextUnused[] = _(""); - -const u8 gWhismurPokedexText[] = _( - "It usually murmurs, but starts crying\n" - "loudly if it senses danger. It stops when\n" - "its ear covers are shut."); - -const u8 gWhismurPokedexTextUnused[] = _(""); - -const u8 gLoudredPokedexText[] = _( - "When it stamps its feet and bellows, it\n" - "generates ultrasonic waves that can blow\n" - "apart a house."); - -const u8 gLoudredPokedexTextUnused[] = _(""); - -const u8 gExploudPokedexText[] = _( - "It emits a variety of sounds from the \n" - "holes all over its body. Its loud cries\n" - "can be heard from over six miles away."); - -const u8 gExploudPokedexTextUnused[] = _(""); - -const u8 gMakuhitaPokedexText[] = _( - "It grows stronger by enduring harsh\n" - "training. It is a gutsy POKéMON that can\n" - "withstand any attack."); - -const u8 gMakuhitaPokedexTextUnused[] = _(""); - -const u8 gHariyamaPokedexText[] = _( - "It stomps on the ground to build power.\n" - "It can send a 10-ton truck flying with a\n" - "straight-arm punch."); - -const u8 gHariyamaPokedexTextUnused[] = _(""); - -const u8 gAzurillPokedexText[] = _( - "It battles by flinging around its tail,\n" - "which is bigger than its body. The\n" - "tail is a flotation device in water."); - -const u8 gAzurillPokedexTextUnused[] = _(""); - -const u8 gNosepassPokedexText[] = _( - "Its magnetic nose consistently faces\n" - "north. Travelers check NOSEPASS to get\n" - "their bearings."); - -const u8 gNosepassPokedexTextUnused[] = _(""); - -const u8 gSkittyPokedexText[] = _( - "It is said to be difficult to earn its\n" - "trust. However, it is extremely popular\n" - "for its cute looks and behavior."); - -const u8 gSkittyPokedexTextUnused[] = _(""); - -const u8 gDelcattyPokedexText[] = _( - "The favorite of trend-conscious\n" - "female TRAINERS, they are used in\n" - "competition for their style and fur."); - -const u8 gDelcattyPokedexTextUnused[] = _(""); - -const u8 gSableyePokedexText[] = _( - "It feeds on gemstone crystals.\n" - "In darkness, its eyes sparkle with the\n" - "glitter of jewels."); - -const u8 gSableyePokedexTextUnused[] = _(""); - -const u8 gMawilePokedexText[] = _( - "It uses its docile-looking face to lull\n" - "foes into complacency, then bites with its\n" - "huge, relentless jaws."); - -const u8 gMawilePokedexTextUnused[] = _(""); - -const u8 gAronPokedexText[] = _( - "It eats iron to build its steel body.\n" - "It is a pest that descends from mountains\n" - "to eat bridges and train tracks."); - -const u8 gAronPokedexTextUnused[] = _(""); - -const u8 gLaironPokedexText[] = _( - "It habitually shows off its strength with\n" - "the size of sparks it creates by ramming\n" - "its steel body into boulders."); - -const u8 gLaironPokedexTextUnused[] = _(""); - -const u8 gAggronPokedexText[] = _( - "It claims a large mountain as its sole\n" - "territory. It mercilessly thrashes those\n" - "that violate its space."); - -const u8 gAggronPokedexTextUnused[] = _(""); - -const u8 gMedititePokedexText[] = _( - "It never skips its daily yoga training.\n" - "It heightens its inner strength through\n" - "meditation."); - -const u8 gMedititePokedexTextUnused[] = _(""); - -const u8 gMedichamPokedexText[] = _( - "It elegantly avoids attacks with dance-\n" - "like steps, then launches a devastating\n" - "blow in the same motion."); - -const u8 gMedichamPokedexTextUnused[] = _(""); - -const u8 gElectrikePokedexText[] = _( - "It stores static electricity in its fur\n" - "for discharging. It gives off sparks if a\n" - "storm approaches."); - -const u8 gElectrikePokedexTextUnused[] = _(""); - -const u8 gManectricPokedexText[] = _( - "It rarely appears before people.\n" - "It is said to nest where lightning has\n" - "fallen."); - -const u8 gManectricPokedexTextUnused[] = _(""); - -const u8 gPluslePokedexText[] = _( - "It cheers on partners while scattering\n" - "sparks from its body. It climbs telephone\n" - "poles to absorb electricity."); - -const u8 gPluslePokedexTextUnused[] = _(""); - -const u8 gMinunPokedexText[] = _( - "Its dislike of water makes it take shelter\n" - "under the eaves of houses in rain. It uses\n" - "pom-poms made of sparks for cheering."); - -const u8 gMinunPokedexTextUnused[] = _(""); - -const u8 gVolbeatPokedexText[] = _( - "It lives around clean ponds. At night,\n" - "its rear lights up. It converses with\n" - "others by flashing its light."); - -const u8 gVolbeatPokedexTextUnused[] = _(""); - -const u8 gIllumisePokedexText[] = _( - "It guides VOLBEAT to draw signs in night\n" - "skies. There are scientists that study the\n" - "patterns it creates."); - -const u8 gIllumisePokedexTextUnused[] = _(""); - -const u8 gRoseliaPokedexText[] = _( - "Its flowers give off a relaxing fragrance.\n" - "The stronger its aroma, the healthier\n" - "the ROSELIA is."); - -const u8 gRoseliaPokedexTextUnused[] = _(""); - -const u8 gGulpinPokedexText[] = _( - "There is nothing its stomach can't digest.\n" - "While it is digesting, vile, overpowering\n" - "gases are expelled."); - -const u8 gGulpinPokedexTextUnused[] = _(""); - -const u8 gSwalotPokedexText[] = _( - "It can swallow a tire whole in one gulp.\n" - "It secretes a horribly toxic fluid from\n" - "the pores on its body."); - -const u8 gSwalotPokedexTextUnused[] = _(""); - -const u8 gCarvanhaPokedexText[] = _( - "It lives in massive rivers that course\n" - "through jungles. It swarms prey that\n" - "enter its territory."); - -const u8 gCarvanhaPokedexTextUnused[] = _(""); - -const u8 gSharpedoPokedexText[] = _( - "The ruffian of the seas, it has fangs that\n" - "crunch through iron. It swims by jetting\n" - "water from its rear."); - -const u8 gSharpedoPokedexTextUnused[] = _(""); - -const u8 gWailmerPokedexText[] = _( - "When it sucks in a large volume of\n" - "seawater, it becomes like a big, bouncy\n" - "ball. It eats a ton of food daily."); - -const u8 gWailmerPokedexTextUnused[] = _(""); - -const u8 gWailordPokedexText[] = _( - "It is among the largest of all POKéMON.\n" - "It herds prey in a pack then swallows the\n" - "massed prey in one gulp."); - -const u8 gWailordPokedexTextUnused[] = _(""); - -const u8 gNumelPokedexText[] = _( - "Magma of almost 2,200 degrees Fahrenheit\n" - "courses through its body. When it grows\n" - "cold, the magma hardens and slows it."); - -const u8 gNumelPokedexTextUnused[] = _(""); - -const u8 gCameruptPokedexText[] = _( - "If angered, the humps on its back erupt\n" - "in a shower of molten lava. It lives in\n" - "the craters of volcanoes."); - -const u8 gCameruptPokedexTextUnused[] = _(""); - -const u8 gTorkoalPokedexText[] = _( - "It burns coal inside its shell. If it is\n" - "attacked, it belches thick, black smoke\n" - "and flees."); - -const u8 gTorkoalPokedexTextUnused[] = _(""); - -const u8 gSpoinkPokedexText[] = _( - "It apparently dies if it stops bouncing\n" - "about. It carries a pearl from CLAMPERL\n" - "on its head."); - -const u8 gSpoinkPokedexTextUnused[] = _(""); - -const u8 gGrumpigPokedexText[] = _( - "It can gain control over foes by doing\n" - "odd dance steps. The black pearls on its\n" - "forehead are precious gems."); - -const u8 gGrumpigPokedexTextUnused[] = _(""); - -const u8 gSpindaPokedexText[] = _( - "No two SPINDA are said to have identical\n" - "patterns. It confuses foes with its\n" - "stumbling motions."); - -const u8 gSpindaPokedexTextUnused[] = _(""); - -const u8 gTrapinchPokedexText[] = _( - "It lives in arid deserts. It makes a\n" - "sloping pit trap in sand where it\n" - "patiently awaits prey."); - -const u8 gTrapinchPokedexTextUnused[] = _(""); - -const u8 gVibravaPokedexText[] = _( - "It generates ultrasonic waves by violently\n" - "flapping its wings. After making its prey\n" - "faint, it melts the prey with acid."); - -const u8 gVibravaPokedexTextUnused[] = _(""); - -const u8 gFlygonPokedexText[] = _( - "It hides itself by kicking up desert sand\n" - "with its wings. Red covers shield its eyes\n" - "from sand."); - -const u8 gFlygonPokedexTextUnused[] = _(""); - -const u8 gCacneaPokedexText[] = _( - "It prefers harsh environments such as\n" - "deserts. It can survive for 30 days on\n" - "water stored in its body."); - -const u8 gCacneaPokedexTextUnused[] = _(""); - -const u8 gCacturnePokedexText[] = _( - "It lives in deserts. It becomes active at\n" - "night when it hunts for prey exhausted\n" - "from the desert's heat."); - -const u8 gCacturnePokedexTextUnused[] = _(""); - -const u8 gSwabluPokedexText[] = _( - "It constantly grooms its cotton-like\n" - "wings. It takes a shower to clean\n" - "itself if it becomes dirty."); - -const u8 gSwabluPokedexTextUnused[] = _(""); - -const u8 gAltariaPokedexText[] = _( - "If you hear a beautiful melody trilling\n" - "deep among mountains far from people,\n" - "it is ALTARIA's humming."); - -const u8 gAltariaPokedexTextUnused[] = _(""); - -const u8 gZangoosePokedexText[] = _( - "If it comes across a SEVIPER, its fur\n" - "bristles and it assumes its battle pose.\n" - "Its sharp claws are its best weapon."); - -const u8 gZangoosePokedexTextUnused[] = _(""); - -const u8 gSeviperPokedexText[] = _( - "It sharpens its swordlike tail on hard\n" - "rocks. It hides in tall grass and strikes\n" - "unwary prey with venomous fangs."); - -const u8 gSeviperPokedexTextUnused[] = _(""); - -const u8 gLunatonePokedexText[] = _( - "Its health ebbs and flows with the lunar\n" - "cycle. It brims with power when exposed\n" - "to the light of the full moon."); - -const u8 gLunatonePokedexTextUnused[] = _(""); - -const u8 gSolrockPokedexText[] = _( - "It absorbs solar energy during the day.\n" - "Always expressionless, it can sense what\n" - "its foe is thinking."); - -const u8 gSolrockPokedexTextUnused[] = _(""); - -const u8 gBarboachPokedexText[] = _( - "It probes muddy riverbeds with its two\n" - "long whiskers. A slimy film protects its\n" - "body."); - -const u8 gBarboachPokedexTextUnused[] = _(""); - -const u8 gWhiscashPokedexText[] = _( - "It makes its nest at the bottom of \n" - "swamps. It will eat anything - if it is\n" - "alive, WHISCASH will eat it."); - -const u8 gWhiscashPokedexTextUnused[] = _(""); - -const u8 gCorphishPokedexText[] = _( - "It came from overseas. It is a very hardy\n" - "creature that will quickly proliferate,\n" - "even in polluted streams."); - -const u8 gCorphishPokedexTextUnused[] = _(""); - -const u8 gCrawdauntPokedexText[] = _( - "A rough customer that wildly flails its\n" - "giant claws. It is said to be extremely\n" - "hard to raise."); - -const u8 gCrawdauntPokedexTextUnused[] = _(""); - -const u8 gBaltoyPokedexText[] = _( - "It was discovered in ancient ruins.\n" - "While moving, it constantly spins. It\n" - "stands on one foot even when asleep."); - -const u8 gBaltoyPokedexTextUnused[] = _(""); - -const u8 gClaydolPokedexText[] = _( - "It appears to have been born from clay\n" - "dolls made by ancient people. It uses\n" - "telekinesis to float and move."); - -const u8 gClaydolPokedexTextUnused[] = _(""); - -const u8 gLileepPokedexText[] = _( - "It became extinct roughly 100 million\n" - "years ago. It was regenerated from a\n" - "fossil using advanced techniques."); - -const u8 gLileepPokedexTextUnused[] = _(""); - -const u8 gCradilyPokedexText[] = _( - "It ensnares prey with its eight tentacles.\n" - "It then melts the prey with a strong acid\n" - "before feeding."); - -const u8 gCradilyPokedexTextUnused[] = _(""); - -const u8 gAnorithPokedexText[] = _( - "It is a kind of POKéMON progenitor.\n" - "It uses its extending claws to catch prey\n" - "hiding among rocks on the seafloor."); - -const u8 gAnorithPokedexTextUnused[] = _(""); - -const u8 gArmaldoPokedexText[] = _( - "Protected by a hard shell, its body is\n" - "very sturdy. It skewers prey with its\n" - "claws to feed."); - -const u8 gArmaldoPokedexTextUnused[] = _(""); - -const u8 gFeebasPokedexText[] = _( - "Ridiculed for its shabby appearance,\n" - "it is ignored by researchers. It lives in\n" - "ponds choked with weeds."); - -const u8 gFeebasPokedexTextUnused[] = _(""); - -const u8 gMiloticPokedexText[] = _( - "MILOTIC is breathtakingly beautiful.\n" - "Those that see it are said to forget their\n" - "combative spirits."); - -const u8 gMiloticPokedexTextUnused[] = _(""); - -const u8 gCastformPokedexText[] = _( - "It has the ability to change its form into\n" - "the sun, the rain, or a snow cloud, \n" - "depending on the weather."); - -const u8 gCastformPokedexTextUnused[] = _(""); - -const u8 gKecleonPokedexText[] = _( - "It changes body color to blend in with\n" - "its surroundings. It also changes color if\n" - "it is happy or sad."); - -const u8 gKecleonPokedexTextUnused[] = _(""); - -const u8 gShuppetPokedexText[] = _( - "It loves to feed on feelings like envy and\n" - "malice. Its upright horn catches the\n" - "emotions of people."); - -const u8 gShuppetPokedexTextUnused[] = _(""); - -const u8 gBanettePokedexText[] = _( - "Strong feelings of hatred turned a puppet\n" - "into a POKéMON. If it opens its mouth,\n" - "its cursed energy escapes."); - -const u8 gBanettePokedexTextUnused[] = _(""); - -const u8 gDuskullPokedexText[] = _( - "Making itself invisible, it silently sneaks\n" - "up to prey. It has the ability to slip\n" - "through thick walls."); - -const u8 gDuskullPokedexTextUnused[] = _(""); - -const u8 gDusclopsPokedexText[] = _( - "Its body is entirely hollow. When it opens\n" - "its mouth, it sucks everything in as if it\n" - "were a black hole."); - -const u8 gDusclopsPokedexTextUnused[] = _(""); - -const u8 gTropiusPokedexText[] = _( - "It lives in tropical jungles. The bunch of\n" - "fruit around its neck is delicious.\n" - "The fruit grows twice a year."); - -const u8 gTropiusPokedexTextUnused[] = _(""); - -const u8 gChimechoPokedexText[] = _( - "It travels by riding on winds. It cleverly\n" - "uses its long tail to pluck nuts and\n" - "berries, which it loves to eat."); - -const u8 gChimechoPokedexTextUnused[] = _(""); - -const u8 gAbsolPokedexText[] = _( - "It appears when it senses an impending\n" - "natural disaster. As a result, it was\n" - "mistaken as a doom-bringer."); - -const u8 gAbsolPokedexTextUnused[] = _(""); - -const u8 gWynautPokedexText[] = _( - "It tends to move in a pack with others.\n" - "They cluster in a tight group to sleep in\n" - "a cave."); - -const u8 gWynautPokedexTextUnused[] = _(""); - -const u8 gSnoruntPokedexText[] = _( - "It is said that a home visited by a\n" - "SNORUNT will prosper. It can withstand\n" - "cold of minus 150 degrees Fahrenheit."); - -const u8 gSnoruntPokedexTextUnused[] = _(""); - -const u8 gGlaliePokedexText[] = _( - "It has a body of ice that won't melt,\n" - "even with fire. It can instantly freeze\n" - "moisture in the atmosphere."); - -const u8 gGlaliePokedexTextUnused[] = _(""); - -const u8 gSphealPokedexText[] = _( - "Its body is covered in fluffy fur.\n" - "The fur keeps it from feeling cold while\n" - "it is rolling on ice."); - -const u8 gSphealPokedexTextUnused[] = _(""); - -const u8 gSealeoPokedexText[] = _( - "It touches new things with its nose to\n" - "test for smell and feel. It plays by\n" - "spinning SPHEAL on its nose."); - -const u8 gSealeoPokedexTextUnused[] = _(""); - -const u8 gWalreinPokedexText[] = _( - "It swims through icy seas while shattering\n" - "ice floes with its large tusks. It is\n" - "protected by its thick blubber."); - -const u8 gWalreinPokedexTextUnused[] = _(""); - -const u8 gClamperlPokedexText[] = _( - "It is protected by a sturdy shell.\n" - "Once in a lifetime, it makes a magnificent\n" - "pearl."); - -const u8 gClamperlPokedexTextUnused[] = _(""); - -const u8 gHuntailPokedexText[] = _( - "It lives deep in the sea where no light\n" - "ever filters down. It lights up its small\n" - "fishlike tail to attract prey."); - -const u8 gHuntailPokedexTextUnused[] = _(""); - -const u8 gGorebyssPokedexText[] = _( - "Its swimming form is exquisitely elegant.\n" - "With its thin mouth, it feeds on seaweed\n" - "that grows between rocks."); - -const u8 gGorebyssPokedexTextUnused[] = _(""); - -const u8 gRelicanthPokedexText[] = _( - "It has remained unchanged for 100\n" - "million years. It was discovered\n" - "during a deep-sea exploration."); - -const u8 gRelicanthPokedexTextUnused[] = _(""); - -const u8 gLuvdiscPokedexText[] = _( - "During the spawning season, countless\n" - "LUVDISC congregate at coral reefs,\n" - "turning the waters pink."); - -const u8 gLuvdiscPokedexTextUnused[] = _(""); - -const u8 gBagonPokedexText[] = _( - "Its steel-hard head can shatter boulders.\n" - "It longingly hopes for wings to grow so it\n" - "can fly."); - -const u8 gBagonPokedexTextUnused[] = _(""); - -const u8 gShelgonPokedexText[] = _( - "Its armored body makes all attacks bounce\n" - "off. The armor is too tough, however,\n" - "making it heavy and somewhat sluggish."); - -const u8 gShelgonPokedexTextUnused[] = _(""); - -const u8 gSalamencePokedexText[] = _( - "It becomes uncontrollable if it is\n" - "enraged. It destroys everything with\n" - "shredding claws and fire."); - -const u8 gSalamencePokedexTextUnused[] = _(""); - -const u8 gBeldumPokedexText[] = _( - "It uses magnetic waves to converse with\n" - "its kind. All the cells in its body are\n" - "magnetic."); - -const u8 gBeldumPokedexTextUnused[] = _(""); - -const u8 gMetangPokedexText[] = _( - "It floats midair using magnetism. Its body\n" - "is so tough, even a crash with a jet\n" - "plane won't leave a scratch."); - -const u8 gMetangPokedexTextUnused[] = _(""); - -const u8 gMetagrossPokedexText[] = _( - "It is formed by two METANG fusing.\n" - "Its four brains are said to be superior\n" - "to a supercomputer."); - -const u8 gMetagrossPokedexTextUnused[] = _(""); - -const u8 gRegirockPokedexText[] = _( - "It is entirely composed of rocks with no\n" - "sign of a brain or heart. It is a mystery\n" - "even to modern scientists."); - -const u8 gRegirockPokedexTextUnused[] = _(""); - -const u8 gRegicePokedexText[] = _( - "Research revealed that its body is made\n" - "of the same kind of ice that is found at\n" - "the South Pole."); - -const u8 gRegicePokedexTextUnused[] = _(""); - -const u8 gRegisteelPokedexText[] = _( - "It is sturdier than any kind of metal.\n" - "It hardened due to pressure underground\n" - "over tens of thousands of years."); - -const u8 gRegisteelPokedexTextUnused[] = _(""); - -const u8 gLatiasPokedexText[] = _( - "It can telepathically communicate with\n" - "people. It changes its appearance using\n" - "its down that refracts light."); - -const u8 gLatiasPokedexTextUnused[] = _(""); - -const u8 gLatiosPokedexText[] = _( - "It has a docile temperament and dislikes\n" - "fighting. Tucking in its forelegs, it can\n" - "fly faster than a jet plane."); - -const u8 gLatiosPokedexTextUnused[] = _(""); - -const u8 gKyogrePokedexText[] = _( - "This POKéMON is said to have expanded\n" - "the sea by bringing heavy rains.\n" - "It has the power to control water."); - -const u8 gKyogrePokedexTextUnused[] = _(""); - -const u8 gGroudonPokedexText[] = _( - "This legendary POKéMON is said to\n" - "represent the land. It went to sleep after\n" - "dueling KYOGRE."); - -const u8 gGroudonPokedexTextUnused[] = _(""); - -const u8 gRayquazaPokedexText[] = _( - "It has lived for hundreds of millions of\n" - "years in the ozone layer. Its flying form\n" - "looks like a meteor."); - -const u8 gRayquazaPokedexTextUnused[] = _(""); - -const u8 gJirachiPokedexText[] = _( - "It is said to make any wish come true.\n" - "It is awake for only seven days out of\n" - "a thousand years."); - -const u8 gJirachiPokedexTextUnused[] = _(""); - -const u8 gDeoxysPokedexText[] = _( - "When it changes form, an aurora appears.\n" - "It absorbs attacks by altering its\n" - "cellular structure."); - -const u8 gDeoxysPokedexTextUnused[] = _(""); diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index e250403fb..63c5d752a 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -1,226 +1,23 @@ #include "constants/abilities.h" - -// Shared Pokédex entries -const u8 gPichuPokedexText[] = _( - "It is still inept at retaining electricity.\n" - "When it is startled, it discharges power\n" - "accidentally. It gets better at holding\n" - "power as it grows older."); - -const u8 gPikachuPokedexText[] = _( - "It stores electricity in the electric sacs\n" - "on its cheeks. When it releases pent-up\n" - "energy in a burst, the electric power is\n" - "equal to a lightning bolt."); - -const u8 gUnownPokedexText[] = _( - "This Pokémon is shaped like ancient text\n" - "characters. Although research is ongoing,\n" - "it is a mystery as to which came first,\n" - "the ancient writings or the various Unown."); - -const u8 gDeoxysNormalPokedexText[] = _( - "Deoxys emerged from a virus that came\n" - "from space. It is highly intelligent and\n" - "can shoot lasers from the crystalline\n" - "organ on its chest."); - -const u8 gArceusPokedexText[] = _( - "It is told in mythology that this Pokémon\n" - "emerged from an egg and shaped all there\n" - "is in this world, before the universe\n" - "even existed."); - -const u8 gGenesectPokedexText[] = _( - "Over 300 million years ago, it was\n" - "feared as the strongest of hunters.\n" - "Team Plasma altered it and attached\n" - "a cannon to its back."); - -const u8 gGreninjaPokedexText[] = _( - "It appears and vanishes with a ninja's\n" - "grace. It toys with its enemies using swift\n" - "movements, while slicing them with throwing\n" - "stars made of compressed water."); - -const u8 gFurfrouPokedexText[] = _( - "Trimming its fluffy fur not only makes\n" - "it more elegant but also increases the\n" - "swiftness of its movements. These\n" - "Pokémon were the guardians of kings."); - -const u8 gXerneasPokedexText[] = _( - "Legends say that when the horns on\n" - "its head shine in seven colors, it is\n" - "sharing everlasting life. It slept for a\n" - "thousand years in the form of a tree"); - -const u8 gZygarde50PokedexText[] = _( - "It's said to be monitoring the ecosystem\n" - "from deep in the caves where it lives.\n" - "There are rumors that even greater power\n" - "lies hidden within its cells."); - -const u8 gZygarde10PokedexText[] = _( - "This is Zygarde when about 10% of\n" - "its pieces have been assembled. It\n" - "leaps at its opponent's chest and\n" - "sinks its sharp fangs into them."); - -const u8 gRockruffPokedexText[] = _( - "This Pokémon has lived with people since\n" - "times long ago. It can sense when its\n" - "Trainer is in the dumps and will stick\n" - "close by its Trainer's side."); - -const u8 gSilvallyNormalPokedexText[] = _( - "Its trust in its partner awakens it.\n" - "This Pokémon is capable of changing its\n" - "type by equipping special memories, a\n" - "trait that is well displayed in battle."); - -const u8 gSilvallyMemoryPokedexText[] = _( - "Upon awakening, its RKS System is\n" - "activated. By employing specific\n" - "memories, this Pokémon can adapt its\n" - "type to confound its enemies."); - -const u8 gMiniorMeteorPokedexText[] = _( - "Originally making its home in the ozone\n" - "layer, it hurtles to the ground when the\n" - "shell encasing its body grows too heavy.\n" - "It was born from mutated nanoparticles."); - -const u8 gMiniorCorePokedexText[] = _( - "If its core stays exposed, it will\n" - "soon die off. It's possible that it\n" - "may survive if it's put into a Poké Ball\n" - "quickly enough."); - -const u8 gAlcremieVanillaCreamPokedexText[] = _( - "When it trusts a Trainer, it will treat\n" - "them to berries it's decorated with cream."); - -const u8 gAlcremieRubyCreamPokedexText[] = _( - "The moment it evolved, it took on a\n" - "sweet and tart flavor. This is\n" - "because of the way its cells\n" - "spontaneously shifted during evolution."); - -const u8 gAlcremieMatchaCreamPokedexText[] = _( - "The moment it evolved, it took on\n" - "an aromatic flavor. This is because\n" - "of the way its cells spontaneously\n" - "shifted during evolution."); - -const u8 gAlcremieMintCreamPokedexText[] = _( - "The moment it evolved, it took on a\n" - "refreshing flavor. This is because\n" - "of the way its cells spontaneously\n" - "shifted during evolution."); - -const u8 gAlcremieLemonCreamPokedexText[] = _( - "The moment it evolved, it took on a\n" - "sour flavor. This is because of the\n" - "way its cells spontaneously shifted\n" - "during evolution."); - -const u8 gAlcremieSaltedCreamPokedexText[] = _( - "The moment it evolved, it took on a\n" - "salty flavor. This is because of the\n" - "way its cells spontaneously shifted\n" - "during evolution."); - -const u8 gAlcremieRubySwirlPokedexText[] = _( - "The moment it evolved, it took on a\n" - "mixed flavor. This is because of the\n" - "way its cells spontaneously shifted\n" - "during evolution."); - -const u8 gAlcremieCaramelSwirlPokedexText[] = _( - "The moment it evolved, it took on a\n" - "bitter flavor. This is because of\n" - "the way its cells spontaneously\n" - "shifted during evolution."); - -const u8 gAlcremieRainbowSwirlPokedexText[] = _( - "The moment it evolved, it took on a\n" - "complex flavor. This is because of\n" - "the way its cells spontaneously\n" - "shifted during evolution."); - -const u8 gToxtricityGigantamaxPokedexText[] = _( - "Out of control after its own\n" - "poison penetrated its brain, it tears\n" - "across the land in a rampage,\n" - "contaminating the earth with toxic sweat."); - -const u8 gOgerponTealMaskPokedexText[] = _( - "This Pokémon's type changes based on\n" - "which mask it's wearing. It confounds\n" - "its enemies with nimble movements\n" - "and kicks."); - -const u8 gOgerponWellspringMaskPokedexText[] = _( - "This form excels in both attack\n" - "and defense. It ceaselessly unleashes\n" - "moves like a spring gushes water."); - -const u8 gOgerponHearthflameMaskPokedexText[] = _( - "This form is the most aggressive,\n" - "bombarding enemies with the\n" - "intensity of flames blazing within a hearth."); - -const u8 gOgerponCornerstoneMaskPokedexText[] = _( - "In this form, it draws on the power\n" - "of stone. Its body is rock-solid,\n" - "protecting it from all manner of\n" - "attacks."); +#include "species_info/shared_dex_text.h" // Macros for ease of use. #define EVOLUTION(...) (const struct Evolution[]) { __VA_ARGS__, { EVOLUTIONS_END }, } -#define FRONT_PIC(sprite, width, height) \ - .frontPic = gMonFrontPic_## sprite, \ - .frontPicSize = MON_COORDS_SIZE(width, height) - -#define FRONT_PIC_FEMALE(sprite, width, height) \ - .frontPicFemale = gMonFrontPic_## sprite##F, \ - .frontPicSizeFemale = MON_COORDS_SIZE(width, height) - -#define BACK_PIC(sprite, width, height) \ - .backPic = gMonBackPic_## sprite, \ - .backPicSize = MON_COORDS_SIZE(width, height) - -#define BACK_PIC_FEMALE(sprite, width, height) \ - .backPicFemale = gMonBackPic_## sprite##F, \ - .backPicSizeFemale = MON_COORDS_SIZE(width, height) - -#define PALETTES(pal) \ - .palette = gMonPalette_## pal, \ - .shinyPalette = gMonShinyPalette_## pal - -#define PALETTE_FEMALE(pal) \ - .paletteFemale = gMonPalette_## pal##F, \ - .shinyPaletteFemale = gMonShinyPalette_## pal##F - -#define ICON(sprite, palId) \ - .iconSprite = gMonIcon_## sprite, \ - .iconPalIndex = palId - -#define ICON_FEMALE(sprite, palId) \ - .iconSpriteFemale = gMonIcon_## sprite##F, \ - .iconPalIndexFemale = palId - -#define LEARNSETS(learn) \ - .levelUpLearnset = s ## learn##LevelUpLearnset, \ - .teachableLearnset = s ## learn##TeachableLearnset +#if P_FOOTPRINTS +#define FOOTPRINT(sprite) .footprint = gMonFootprint_## sprite, +#else +#define FOOTPRINT(sprite) +#endif // Maximum value for a female Pokémon is 254 (MON_FEMALE) which is 100% female. // 255 (MON_GENDERLESS) is reserved for genderless Pokémon. #define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) +#define MON_TYPES(type1, ...) { type1, DEFAULT(type1, __VA_ARGS__) } +#define MON_EGG_GROUPS(group1, ...) { group1, DEFAULT(group1, __VA_ARGS__) } + #define FLIP 0 #define NO_FLIP 1 @@ -243,38 +40,45 @@ const struct SpeciesInfo gSpeciesInfo[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CircledQuestionMark, 40, 40), + .frontPic = gMonFrontPic_CircledQuestionMark, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_None, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CircledQuestionMark, 40, 40), + .backPic = gMonBackPic_CircledQuestionMark, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_NONE, - PALETTES(CircledQuestionMark), - ICON(QuestionMark, 0), - LEARNSETS(None), + .palette = gMonPalette_CircledQuestionMark, + .shinyPalette = gMonShinyPalette_CircledQuestionMark, + .iconSprite = gMonIcon_QuestionMark, + .iconPalIndex = 0, + .levelUpLearnset = sNoneLevelUpLearnset, + .teachableLearnset = sNoneTeachableLearnset, }, - #include "species_info/gen_1.h" - #include "species_info/gen_2.h" - #include "species_info/gen_3.h" - #include "species_info/gen_4.h" - #include "species_info/gen_5.h" - #include "species_info/gen_6.h" - #include "species_info/gen_7.h" - #include "species_info/gen_8.h" - #include "species_info/gen_9.h" + #include "species_info/gen_1_families.h" + #include "species_info/gen_2_families.h" + #include "species_info/gen_3_families.h" + #include "species_info/gen_4_families.h" + #include "species_info/gen_5_families.h" + #include "species_info/gen_6_families.h" + #include "species_info/gen_7_families.h" + #include "species_info/gen_8_families.h" + #include "species_info/gen_9_families.h" [SPECIES_EGG] = { - FRONT_PIC(Egg, 24, 24), + .frontPic = gMonFrontPic_Egg, + .frontPicSize = MON_COORDS_SIZE(24, 24), .frontPicYOffset = 20, .backPic = gMonFrontPic_Egg, .backPicSize = MON_COORDS_SIZE(24, 24), .backPicYOffset = 20, .palette = gMonPalette_Egg, .shinyPalette = gMonPalette_Egg, - ICON(Egg, 1), + .iconSprite = gMonIcon_Egg, + .iconPalIndex = 1, }, /* You may add any custom species below this point based on the following structure: */ @@ -288,7 +92,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 1, .baseSpAttack = 1, .baseSpDefense = 1, - .types = { TYPE_MYSTERY, TYPE_MYSTERY }, + .types = MON_TYPES(TYPE_MYSTERY), .catchRate = 255, .expYield = 67, .evYield_HP = 1, @@ -298,7 +102,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_NONE, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("??????????"), @@ -316,22 +120,30 @@ const struct SpeciesInfo gSpeciesInfo[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CircledQuestionMark, 64, 64), - //FRONT_PIC_FEMALE(CircledQuestionMark, 64, 64), + .frontPic = gMonFrontPic_CircledQuestionMark, + .frontPicSize = MON_COORDS_SIZE(64, 64), + //.frontPicFemale = gMonFrontPic_CircledQuestionMark, + //.frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_None, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 0, - BACK_PIC(CircledQuestionMark, 64, 64), - //BACK_PIC_FEMALE(CircledQuestionMark, 64, 64), + .backPic = gMonBackPic_CircledQuestionMark, + .backPicSize = MON_COORDS_SIZE(64, 64), + //.backPicFemale = gMonBackPic_CircledQuestionMarkF, + //.backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_NONE, - PALETTES(CircledQuestionMark), - //PALETTE_FEMALE(CircledQuestionMark), - ICON(QuestionMark, 0), - //ICON_FEMALE(QuestionMark, 1), - //.footprint = gMonFootprint_None, - LEARNSETS(None), + .palette = gMonPalette_CircledQuestionMark, + .shinyPalette = gMonShinyPalette_CircledQuestionMark, + //.paletteFemale = gMonPalette_CircledQuestionMarkF, + .shinyPaletteFemale = gMonShinyPalette_CircledQuestionMarkF, + .iconSprite = gMonIcon_QuestionMark, + .iconPalIndex = 0, + //.iconSpriteFemale = gMonIcon_QuestionMarkF, + //.iconPalIndexFemale = 1, + //FOOTPRINT(None) + .levelUpLearnset = sNoneLevelUpLearnset, + .teachableLearnset = sNoneTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 100, SPECIES_NONE}, {EVO_ITEM, ITEM_MOOMOO_MILK, SPECIES_NONE}), //.formSpeciesIdTable = sNoneFormSpeciesIdTable, diff --git a/src/data/pokemon/species_info/gen_1.h b/src/data/pokemon/species_info/gen_1_families.h similarity index 51% rename from src/data/pokemon/species_info/gen_1.h rename to src/data/pokemon/species_info/gen_1_families.h index dd2608a19..9eb3164e7 100644 --- a/src/data/pokemon/species_info/gen_1.h +++ b/src/data/pokemon/species_info/gen_1_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, .expYield = 64, .evYield_SpAttack = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bulbasaur"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bulbasaur, 40, 40), + .frontPic = gMonFrontPic_Bulbasaur, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Bulbasaur, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Bulbasaur, 56, 40), + .backPic = gMonBackPic_Bulbasaur, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Bulbasaur), - ICON(Bulbasaur, 4), - .footprint = gMonFootprint_Bulbasaur, - LEARNSETS(Bulbasaur), + .palette = gMonPalette_Bulbasaur, + .shinyPalette = gMonShinyPalette_Bulbasaur, + .iconSprite = gMonIcon_Bulbasaur, + .iconPalIndex = 4, + FOOTPRINT(Bulbasaur) + .levelUpLearnset = sBulbasaurLevelUpLearnset, + .teachableLearnset = sBulbasaurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_IVYSAUR}), }, @@ -60,16 +65,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_SpAttack = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Ivysaur"), @@ -87,51 +92,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ivysaur, 56, 48), + .frontPic = gMonFrontPic_Ivysaur, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Ivysaur, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Ivysaur, 64, 56), + .backPic = gMonBackPic_Ivysaur, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Ivysaur), - ICON(Ivysaur, 4), - .footprint = gMonFootprint_Ivysaur, - LEARNSETS(Ivysaur), + .palette = gMonPalette_Ivysaur, + .shinyPalette = gMonShinyPalette_Ivysaur, + .iconSprite = gMonIcon_Ivysaur, + .iconPalIndex = 4, + FOOTPRINT(Ivysaur) + .levelUpLearnset = sIvysaurLevelUpLearnset, + .teachableLearnset = sIvysaurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_VENUSAUR}), }, -#define VENUSAUR_MISC_INFO \ - .types = { TYPE_GRASS, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Venusaur"), \ - .natDexNum = NATIONAL_DEX_VENUSAUR, \ - .categoryName = _("Seed"), \ - .footprint = gMonFootprint_Venusaur, \ - LEARNSETS(Venusaur), \ - .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, \ - .formChangeTable = sVenusaurFormChangeTable - [SPECIES_VENUSAUR] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 82, .baseDefense = 83, .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 20, .weight = 1000, .description = COMPOUND_STRING( @@ -143,32 +152,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(Venusaur, 64, 64), - FRONT_PIC_FEMALE(Venusaur, 64, 64), + .frontPic = gMonFrontPic_Venusaur, + .frontPicFemale = gMonFrontPic_VenusaurF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Venusaur, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Venusaur, 64, 48), - BACK_PIC_FEMALE(Venusaur, 64, 48), + .backPic = gMonBackPic_Venusaur, + .backPicFemale = gMonBackPic_VenusaurF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Venusaur), - ICON(Venusaur, 4), + .palette = gMonPalette_Venusaur, + .shinyPalette = gMonShinyPalette_Venusaur, + .iconSprite = gMonIcon_Venusaur, + .iconPalIndex = 4, + FOOTPRINT(Venusaur) + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_VENUSAUR_MEGA] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 123, .baseSpeed = 80, .baseSpAttack = 122, .baseSpDefense = 120, - .expYield = 281, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 313 : 281, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_THICK_FAT, ABILITY_THICK_FAT, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR_MEGA, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 24, .weight = 1555, .description = COMPOUND_STRING( @@ -179,32 +211,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(VenusaurMega, 64, 64), + .frontPic = gMonFrontPic_VenusaurMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_VenusaurMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VenusaurMega, 64, 64), + .backPic = gMonBackPic_VenusaurMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(VenusaurMega), - ICON(VenusaurMega, 4), + .palette = gMonPalette_VenusaurMega, + .shinyPalette = gMonShinyPalette_VenusaurMega, + .iconSprite = gMonIcon_VenusaurMega, + .iconPalIndex = 4, + FOOTPRINT(Venusaur) .isMegaEvolution = TRUE, + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_VENUSAUR_GIGANTAMAX] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 82, .baseDefense = 83, .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, .expYield = 236, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -216,16 +269,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(VenusaurGigantamax, 64, 64), + .frontPic = gMonFrontPic_VenusaurGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_VenusaurGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VenusaurGigantamax, 64, 64), + .backPic = gMonBackPic_VenusaurGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VenusaurGigantamax), - ICON(VenusaurGigantamax, 0), + .palette = gMonPalette_VenusaurGigantamax, + .shinyPalette = gMonShinyPalette_VenusaurGigantamax, + .iconSprite = gMonIcon_VenusaurGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Venusaur) .isGigantamax = TRUE, + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR @@ -239,15 +301,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charmander"), @@ -265,17 +327,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charmander, 48, 48), + .frontPic = gMonFrontPic_Charmander, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Charmander, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Charmander, 48, 48), + .backPic = gMonBackPic_Charmander, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Charmander), - ICON(Charmander, 0), - .footprint = gMonFootprint_Charmander, - LEARNSETS(Charmander), + .palette = gMonPalette_Charmander, + .shinyPalette = gMonShinyPalette_Charmander, + .iconSprite = gMonIcon_Charmander, + .iconPalIndex = 0, + FOOTPRINT(Charmander) + .levelUpLearnset = sCharmanderLevelUpLearnset, + .teachableLearnset = sCharmanderTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CHARMELEON}), }, @@ -287,7 +354,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -296,7 +363,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charmeleon"), @@ -314,50 +381,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charmeleon, 56, 56), + .frontPic = gMonFrontPic_Charmeleon, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Charmeleon, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Charmeleon, 56, 48), + .backPic = gMonBackPic_Charmeleon, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Charmeleon), - ICON(Charmeleon, 0), - .footprint = gMonFootprint_Charmeleon, - LEARNSETS(Charmeleon), + .palette = gMonPalette_Charmeleon, + .shinyPalette = gMonShinyPalette_Charmeleon, + .iconSprite = gMonIcon_Charmeleon, + .iconPalIndex = 0, + FOOTPRINT(Charmeleon) + .levelUpLearnset = sCharmeleonLevelUpLearnset, + .teachableLearnset = sCharmeleonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHARIZARD}), }, -#define CHARIZARD_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, \ - .speciesName = _("Charizard"), \ - .natDexNum = NATIONAL_DEX_CHARIZARD, \ - .categoryName = _("Flame"), \ - .footprint = gMonFootprint_Charizard, \ - LEARNSETS(Charizard), \ - .formSpeciesIdTable = sCharizardFormSpeciesIdTable, \ - .formChangeTable = sCharizardFormChangeTable - [SPECIES_CHARIZARD] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 267, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 240, + #else + .expYield = 209, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 905, .description = COMPOUND_STRING( @@ -369,32 +440,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(Charizard, 64, 64), + .frontPic = gMonFrontPic_Charizard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Charizard, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Charizard, 64, 64), + .backPic = gMonBackPic_Charizard, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Charizard), - ICON(Charizard, 0), + .palette = gMonPalette_Charizard, + .shinyPalette = gMonShinyPalette_Charizard, + .iconSprite = gMonIcon_Charizard, + .iconPalIndex = 0, + FOOTPRINT(Charizard) + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_CHARIZARD_MEGA_X] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 130, .baseDefense = 111, .baseSpeed = 100, .baseSpAttack = 130, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON }, - .expYield = 285, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 317 : 285, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD_MEGA_X, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 1105, .description = COMPOUND_STRING( @@ -405,32 +494,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardMegaX, 64, 64), + .frontPic = gMonFrontPic_CharizardMegaX, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardMegaX, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardMegaX, 64, 64), + .backPic = gMonBackPic_CharizardMegaX, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(CharizardMegaX), - ICON(CharizardMegaX, 0), + .palette = gMonPalette_CharizardMegaX, + .shinyPalette = gMonShinyPalette_CharizardMegaX, + .iconSprite = gMonIcon_CharizardMegaX, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isMegaEvolution = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, [SPECIES_CHARIZARD_MEGA_Y] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 104, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 159, .baseSpDefense = 115, - .types = { TYPE_FIRE, TYPE_FLYING }, - .expYield = 285, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 317 : 285, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DROUGHT, ABILITY_DROUGHT, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD_MEGA_Y, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 1005, .description = COMPOUND_STRING( @@ -442,34 +549,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardMegaY, 64, 64), + .frontPic = gMonFrontPic_CharizardMegaY, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardMegaY, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardMegaY, 64, 64), + .backPic = gMonBackPic_CharizardMegaY, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CharizardMegaY), - ICON(CharizardMegaY, 0), + .palette = gMonPalette_CharizardMegaY, + .shinyPalette = gMonShinyPalette_CharizardMegaY, + .iconSprite = gMonIcon_CharizardMegaY, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isMegaEvolution = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_CHARIZARD_GIGANTAMAX] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, .expYield = 240, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 280, .weight = 0, .description = COMPOUND_STRING( @@ -481,16 +606,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardGigantamax, 64, 64), + .frontPic = gMonFrontPic_CharizardGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardGigantamax, 64, 64), + .backPic = gMonBackPic_CharizardGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CharizardGigantamax), - ICON(CharizardGigantamax, 0), + .palette = gMonPalette_CharizardGigantamax, + .shinyPalette = gMonShinyPalette_CharizardGigantamax, + .iconSprite = gMonIcon_CharizardGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isGigantamax = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER @@ -504,15 +638,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 43, .baseSpAttack = 50, .baseSpDefense = 64, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Squirtle"), @@ -530,17 +664,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Squirtle, 40, 48), + .frontPic = gMonFrontPic_Squirtle, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Squirtle, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Squirtle, 48, 48), + .backPic = gMonBackPic_Squirtle, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Squirtle), - ICON(Squirtle, 0), - .footprint = gMonFootprint_Squirtle, - LEARNSETS(Squirtle), + .palette = gMonPalette_Squirtle, + .shinyPalette = gMonShinyPalette_Squirtle, + .iconSprite = gMonIcon_Squirtle, + .iconPalIndex = 0, + FOOTPRINT(Squirtle) + .levelUpLearnset = sSquirtleLevelUpLearnset, + .teachableLearnset = sSquirtleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_WARTORTLE}), }, @@ -552,16 +691,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wartortle"), @@ -579,50 +718,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wartortle, 56, 56), + .frontPic = gMonFrontPic_Wartortle, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Wartortle, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Wartortle, 64, 56), + .backPic = gMonBackPic_Wartortle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Wartortle), - ICON(Wartortle, 2), - .footprint = gMonFootprint_Wartortle, - LEARNSETS(Wartortle), + .palette = gMonPalette_Wartortle, + .shinyPalette = gMonShinyPalette_Wartortle, + .iconSprite = gMonIcon_Wartortle, + .iconPalIndex = 2, + FOOTPRINT(Wartortle) + .levelUpLearnset = sWartortleLevelUpLearnset, + .teachableLearnset = sWartortleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLASTOISE}), }, -#define BLASTOISE_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .evYield_SpDefense = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Blastoise"), \ - .natDexNum = NATIONAL_DEX_BLASTOISE, \ - .categoryName = _("Shellfish"), \ - .footprint = gMonFootprint_Blastoise, \ - LEARNSETS(Blastoise), \ - .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, \ - .formChangeTable = sBlastoiseFormChangeTable - [SPECIES_BLASTOISE] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 83, .baseDefense = 100, .baseSpeed = 78, .baseSpAttack = 85, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 16, .weight = 855, .description = COMPOUND_STRING( @@ -634,31 +777,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Blastoise, 64, 64), + .frontPic = gMonFrontPic_Blastoise, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Blastoise, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 20, - BACK_PIC(Blastoise, 64, 56), + .backPic = gMonBackPic_Blastoise, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Blastoise), - ICON(Blastoise, 2), + .palette = gMonPalette_Blastoise, + .shinyPalette = gMonShinyPalette_Blastoise, + .iconSprite = gMonIcon_Blastoise, + .iconPalIndex = 2, + FOOTPRINT(Blastoise) + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BLASTOISE_MEGA] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 103, .baseDefense = 120, .baseSpeed = 78, .baseSpAttack = 135, .baseSpDefense = 115, - .expYield = 284, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE_MEGA, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 16, .weight = 1011, .description = COMPOUND_STRING( @@ -670,32 +833,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(BlastoiseMega, 64, 64), + .frontPic = gMonFrontPic_BlastoiseMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BlastoiseMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlastoiseMega, 64, 64), + .backPic = gMonBackPic_BlastoiseMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(BlastoiseMega), - ICON(BlastoiseMega, 2), + .palette = gMonPalette_BlastoiseMega, + .shinyPalette = gMonShinyPalette_BlastoiseMega, + .iconSprite = gMonIcon_BlastoiseMega, + .iconPalIndex = 2, + FOOTPRINT(Blastoise) .isMegaEvolution = TRUE, + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_BLASTOISE_GIGANTAMAX] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 83, .baseDefense = 100, .baseSpeed = 78, .baseSpAttack = 85, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 239, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -707,16 +890,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(BlastoiseGigantamax, 64, 64), + .frontPic = gMonFrontPic_BlastoiseGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_BlastoiseGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlastoiseGigantamax, 64, 64), + .backPic = gMonBackPic_BlastoiseGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BlastoiseGigantamax), - ICON(BlastoiseGigantamax, 0), + .palette = gMonPalette_BlastoiseGigantamax, + .shinyPalette = gMonShinyPalette_BlastoiseGigantamax, + .iconSprite = gMonIcon_BlastoiseGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Blastoise) .isGigantamax = TRUE, + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE @@ -730,15 +922,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 53, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Caterpie"), @@ -756,17 +948,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Caterpie, 40, 40), + .frontPic = gMonFrontPic_Caterpie, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Caterpie, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Caterpie, 48, 40), + .backPic = gMonBackPic_Caterpie, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Caterpie), - ICON(Caterpie, 1), - .footprint = gMonFootprint_Caterpie, - LEARNSETS(Caterpie), + .palette = gMonPalette_Caterpie, + .shinyPalette = gMonShinyPalette_Caterpie, + .iconSprite = gMonIcon_Caterpie, + .iconPalIndex = 1, + FOOTPRINT(Caterpie) + .tmIlliterate = TRUE, + .levelUpLearnset = sCaterpieLevelUpLearnset, + .teachableLearnset = sCaterpieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_METAPOD}), }, @@ -778,7 +976,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, .expYield = 72, .evYield_Defense = 2, @@ -786,8 +984,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Metapod"), .cryId = CRY_METAPOD, @@ -804,52 +1002,61 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Metapod, 40, 40), + .frontPic = gMonFrontPic_Metapod, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Metapod, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Metapod, 40, 48), + .backPic = gMonBackPic_Metapod, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Metapod), - ICON(Metapod, 1), - .footprint = gMonFootprint_Metapod, - LEARNSETS(Metapod), + .palette = gMonPalette_Metapod, + .shinyPalette = gMonShinyPalette_Metapod, + .iconSprite = gMonIcon_Metapod, + .iconPalIndex = 1, + FOOTPRINT(Metapod) + .tmIlliterate = TRUE, + .levelUpLearnset = sMetapodLevelUpLearnset, + .teachableLearnset = sMetapodTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BUTTERFREE}), }, -#define BUTTERFREE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 50, \ - .baseSpeed = 70, \ - .baseSpDefense = 80, \ - .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, \ - .types = { TYPE_BUG, TYPE_FLYING }, \ - .catchRate = 45, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_SILVER_POWDER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Butterfree"), \ - .cryId = CRY_BUTTERFREE, \ - .natDexNum = NATIONAL_DEX_BUTTERFREE, \ - .categoryName = _("Butterfly"), \ - .footprint = gMonFootprint_Butterfree, \ - LEARNSETS(Butterfree), \ - .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, \ - .formChangeTable = sButterfreeFormChangeTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define BUTTERFREE_EXP_YIELD 198 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define BUTTERFREE_EXP_YIELD 178 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define BUTTERFREE_EXP_YIELD 173 +#else + #define BUTTERFREE_EXP_YIELD 160 +#endif [SPECIES_BUTTERFREE] = { - BUTTERFREE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, + .expYield = BUTTERFREE_EXP_YIELD, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Butterfree"), + .cryId = CRY_BUTTERFREE, + .natDexNum = NATIONAL_DEX_BUTTERFREE, + .categoryName = _("Butterfly"), .height = 11, .weight = 320, .description = COMPOUND_STRING( @@ -861,24 +1068,57 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Butterfree, 64, 56), - FRONT_PIC_FEMALE(Butterfree, 64, 56), + .frontPic = gMonFrontPic_Butterfree, + .frontPicFemale = gMonFrontPic_ButterfreeF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Butterfree, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 12, - BACK_PIC(Butterfree, 64, 56), - BACK_PIC_FEMALE(Butterfree, 64, 56), + .backPic = gMonBackPic_Butterfree, + .backPicFemale = gMonBackPic_ButterfreeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Butterfree), - ICON(Butterfree, 0), + .palette = gMonPalette_Butterfree, + .shinyPalette = gMonShinyPalette_Butterfree, + .iconSprite = gMonIcon_Butterfree, + .iconPalIndex = 0, + FOOTPRINT(Butterfree) + .levelUpLearnset = sButterfreeLevelUpLearnset, + .teachableLearnset = sButterfreeTeachableLearnset, + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, + .formChangeTable = sButterfreeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_BUTTERFREE_GIGANTAMAX] = { - BUTTERFREE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, + .expYield = BUTTERFREE_EXP_YIELD, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Butterfree"), + .cryId = CRY_BUTTERFREE, + .natDexNum = NATIONAL_DEX_BUTTERFREE, + .categoryName = _("Butterfly"), .height = 170, .weight = 0, .description = COMPOUND_STRING( @@ -890,17 +1130,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ButterfreeGigantamax, 64, 64), + .frontPic = gMonFrontPic_ButterfreeGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_ButterfreeGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(ButterfreeGigantamax, 64, 64), + .backPic = gMonBackPic_ButterfreeGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ButterfreeGigantamax), - ICON(ButterfreeGigantamax, 0), + .palette = gMonPalette_ButterfreeGigantamax, + .shinyPalette = gMonShinyPalette_ButterfreeGigantamax, + .iconSprite = gMonIcon_ButterfreeGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Butterfree) .isGigantamax = TRUE, + .levelUpLearnset = sButterfreeLevelUpLearnset, + .teachableLearnset = sButterfreeTeachableLearnset, + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, + .formChangeTable = sButterfreeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE @@ -914,15 +1163,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 52, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Weedle"), @@ -940,18 +1189,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weedle, 40, 40), + .frontPic = gMonFrontPic_Weedle, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Weedle, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, - BACK_PIC(Weedle, 56, 56), + .backPic = gMonBackPic_Weedle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Weedle), - ICON(Weedle, 2), - .footprint = gMonFootprint_Weedle, - LEARNSETS(Weedle), + .palette = gMonPalette_Weedle, + .shinyPalette = gMonShinyPalette_Weedle, + .iconSprite = gMonIcon_Weedle, + .iconPalIndex = 2, + FOOTPRINT(Weedle) + .tmIlliterate = TRUE, + .levelUpLearnset = sWeedleLevelUpLearnset, + .teachableLearnset = sWeedleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_KAKUNA}), }, @@ -963,16 +1218,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 120, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 71, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Kakuna"), .cryId = CRY_KAKUNA, @@ -989,55 +1244,62 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kakuna, 24, 48), + .frontPic = gMonFrontPic_Kakuna, + .frontPicSize = MON_COORDS_SIZE(24, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Kakuna, .frontAnimId = ANIM_GLOW_ORANGE, .frontAnimDelay = 20, - BACK_PIC(Kakuna, 32, 40), + .backPic = gMonBackPic_Kakuna, + .backPicSize = MON_COORDS_SIZE(32, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Kakuna), - ICON(Kakuna, 2), - .footprint = gMonFootprint_Kakuna, - LEARNSETS(Kakuna), + .palette = gMonPalette_Kakuna, + .shinyPalette = gMonShinyPalette_Kakuna, + .iconSprite = gMonIcon_Kakuna, + .iconPalIndex = 2, + FOOTPRINT(Kakuna) + .tmIlliterate = TRUE, + .levelUpLearnset = sKakunaLevelUpLearnset, + .teachableLearnset = sKakunaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEEDRILL}), }, #define BEEDRILL_ATTACK (P_UPDATED_STATS >= GEN_6 ? 90 : 80) -#define BEEDRILL_MISC_INFO \ - .types = { TYPE_BUG, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_POISON_BARB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Beedrill"), \ - .natDexNum = NATIONAL_DEX_BEEDRILL, \ - .categoryName = _("Poison Bee"), \ - .footprint = gMonFootprint_Beedrill, \ - LEARNSETS(Beedrill), \ - .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, \ - .formChangeTable = sBeedrillFormChangeTable - [SPECIES_BEEDRILL] = { - BEEDRILL_MISC_INFO, .baseHP = 65, + .baseAttack = BEEDRILL_ATTACK, .baseDefense = 40, .baseSpeed = 75, .baseSpAttack = 45, .baseSpDefense = 80, - .baseAttack = BEEDRILL_ATTACK, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 198, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 178, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 173, + #else + .expYield = 159, + #endif + .evYield_Attack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Beedrill"), .cryId = CRY_BEEDRILL, + .natDexNum = NATIONAL_DEX_BEEDRILL, + .categoryName = _("Poison Bee"), .height = 10, .weight = 295, .description = COMPOUND_STRING( @@ -1049,31 +1311,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beedrill, 64, 56), + .frontPic = gMonFrontPic_Beedrill, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Beedrill, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 9, - BACK_PIC(Beedrill, 64, 56), + .backPic = gMonBackPic_Beedrill, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Beedrill), - ICON(Beedrill, 2), + .palette = gMonPalette_Beedrill, + .shinyPalette = gMonShinyPalette_Beedrill, + .iconSprite = gMonIcon_Beedrill, + .iconPalIndex = 2, + FOOTPRINT(Beedrill) + .levelUpLearnset = sBeedrillLevelUpLearnset, + .teachableLearnset = sBeedrillTeachableLearnset, + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, + .formChangeTable = sBeedrillFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BEEDRILL_MEGA] = { - BEEDRILL_MISC_INFO, .baseHP = 65, .baseAttack = BEEDRILL_ATTACK + 60, .baseDefense = 40, .baseSpeed = 145, .baseSpAttack = 15, .baseSpDefense = 80, - .expYield = 223, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 248 : 223, + .evYield_Attack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Beedrill"), .cryId = CRY_BEEDRILL_MEGA, + .natDexNum = NATIONAL_DEX_BEEDRILL, + .categoryName = _("Poison Bee"), .height = 14, .weight = 405, .description = COMPOUND_STRING( @@ -1085,17 +1369,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BeedrillMega, 64, 64), + .frontPic = gMonFrontPic_BeedrillMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_BeedrillMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(BeedrillMega, 64, 64), + .backPic = gMonBackPic_BeedrillMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(BeedrillMega), - ICON(BeedrillMega, 2), + .palette = gMonPalette_BeedrillMega, + .shinyPalette = gMonShinyPalette_BeedrillMega, + .iconSprite = gMonIcon_BeedrillMega, + .iconPalIndex = 2, + FOOTPRINT(Beedrill) .isMegaEvolution = TRUE, + .levelUpLearnset = sBeedrillLevelUpLearnset, + .teachableLearnset = sBeedrillTeachableLearnset, + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, + .formChangeTable = sBeedrillFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_WEEDLE @@ -1109,15 +1402,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 56, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 55, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pidgey"), @@ -1135,17 +1428,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgey, 40, 40), + .frontPic = gMonFrontPic_Pidgey, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pidgey, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pidgey, 56, 48), + .backPic = gMonBackPic_Pidgey, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Pidgey), - ICON(Pidgey, 0), - .footprint = gMonFootprint_Pidgey, - LEARNSETS(Pidgey), + .palette = gMonPalette_Pidgey, + .shinyPalette = gMonShinyPalette_Pidgey, + .iconSprite = gMonIcon_Pidgey, + .iconPalIndex = 0, + FOOTPRINT(Pidgey) + .levelUpLearnset = sPidgeyLevelUpLearnset, + .teachableLearnset = sPidgeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PIDGEOTTO}), }, @@ -1157,15 +1455,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 71, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, - .expYield = 122, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 122 : 113, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pidgeotto"), @@ -1183,53 +1481,59 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgeotto, 56, 56), + .frontPic = gMonFrontPic_Pidgeotto, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Pidgeotto, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 25, - BACK_PIC(Pidgeotto, 64, 56), + .backPic = gMonBackPic_Pidgeotto, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Pidgeotto), - ICON(Pidgeotto, 0), - .footprint = gMonFootprint_Pidgeotto, - LEARNSETS(Pidgeotto), + .palette = gMonPalette_Pidgeotto, + .shinyPalette = gMonShinyPalette_Pidgeotto, + .iconSprite = gMonIcon_Pidgeotto, + .iconPalIndex = 0, + FOOTPRINT(Pidgeotto) + .levelUpLearnset = sPidgeottoLevelUpLearnset, + .teachableLearnset = sPidgeottoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_PIDGEOT}), }, #define PIDGEOT_SPEED (P_UPDATED_STATS >= GEN_6 ? 101 : 91) -#define PIDGEOT_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING },\ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pidgeot"), \ - .natDexNum = NATIONAL_DEX_PIDGEOT, \ - .categoryName = _("Bird"), \ - .footprint = gMonFootprint_Pidgeot, \ - LEARNSETS(Pidgeot), \ - .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, \ - .formChangeTable = sPidgeotFormChangeTable - [SPECIES_PIDGEOT] = { - PIDGEOT_MISC_INFO, .baseHP = 83, .baseAttack = 80, .baseDefense = 75, + .baseSpeed = PIDGEOT_SPEED, .baseSpAttack = 70, .baseSpDefense = 70, - .baseSpeed = PIDGEOT_SPEED, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 216, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 211, + #else + .expYield = 172, + #endif + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pidgeot"), .cryId = CRY_PIDGEOT, + .natDexNum = NATIONAL_DEX_PIDGEOT, + .categoryName = _("Bird"), .height = 15, .weight = 395, .description = COMPOUND_STRING( @@ -1241,31 +1545,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgeot, 64, 64), + .frontPic = gMonFrontPic_Pidgeot, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pidgeot, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(Pidgeot, 64, 56), + .backPic = gMonBackPic_Pidgeot, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Pidgeot), - ICON(Pidgeot, 0), + .palette = gMonPalette_Pidgeot, + .shinyPalette = gMonShinyPalette_Pidgeot, + .iconSprite = gMonIcon_Pidgeot, + .iconPalIndex = 0, + FOOTPRINT(Pidgeot) + .levelUpLearnset = sPidgeotLevelUpLearnset, + .teachableLearnset = sPidgeotTeachableLearnset, + .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, + .formChangeTable = sPidgeotFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_PIDGEOT_MEGA] = { - PIDGEOT_MISC_INFO, .baseHP = 83, .baseAttack = 80, .baseDefense = 80, .baseSpeed = PIDGEOT_SPEED + 20, .baseSpAttack = 135, .baseSpDefense = 80, - .expYield = 261, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_NO_GUARD, ABILITY_NO_GUARD, ABILITY_NO_GUARD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pidgeot"), .cryId = CRY_PIDGEOT_MEGA, + .natDexNum = NATIONAL_DEX_PIDGEOT, + .categoryName = _("Bird"), .height = 22, .weight = 505, .description = COMPOUND_STRING( @@ -1276,65 +1600,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PidgeotMega, 64, 64), + .frontPic = gMonFrontPic_PidgeotMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_PidgeotMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(PidgeotMega, 64, 64), + .backPic = gMonBackPic_PidgeotMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(PidgeotMega), - ICON(PidgeotMega, 0), + .palette = gMonPalette_PidgeotMega, + .shinyPalette = gMonShinyPalette_PidgeotMega, + .iconSprite = gMonIcon_PidgeotMega, + .iconPalIndex = 0, + FOOTPRINT(Pidgeot) .isMegaEvolution = TRUE, + .levelUpLearnset = sPidgeotLevelUpLearnset, + .teachableLearnset = sPidgeotTeachableLearnset, + .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, + .formChangeTable = sPidgeotFormChangeTable, }, #endif #endif //P_FAMILY_PIDGEY #if P_FAMILY_RATTATA -#define RATTATA_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define RATTATA_MISC_INFO \ - .baseHP = 30, \ - .baseAttack = 56, \ - .baseDefense = 35, \ - .baseSpeed = 72, \ - .baseSpAttack = 25, \ - .baseSpDefense = 35, \ - .catchRate = 255, \ - .expYield = 51, \ - .evYield_Speed = 1, \ - .speciesName = _("Rattata"), \ - .cryId = CRY_RATTATA, \ - .natDexNum = NATIONAL_DEX_RATTATA, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Rattata, \ - .formSpeciesIdTable = sRattataFormSpeciesIdTable - -#define RATICATE_MISC_INFO \ - .catchRate = 127, \ - .expYield = 145, \ - .evYield_Speed = 2, \ - .speciesName = _("Raticate"), \ - .cryId = CRY_RATICATE, \ - .natDexNum = NATIONAL_DEX_RATICATE, \ - .categoryName = _("Mouse"), \ - .height = 7, \ - .footprint = gMonFootprint_Raticate,\ - .formSpeciesIdTable = sRaticateFormSpeciesIdTable - [SPECIES_RATTATA] = { - RATTATA_FAMILY_MISC_INFO, - RATTATA_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 30, + .baseAttack = 56, + .baseDefense = 35, + .baseSpeed = 72, + .baseSpAttack = 25, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 51 : 57, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Rattata"), + .cryId = CRY_RATTATA, + .natDexNum = NATIONAL_DEX_RATTATA, + .categoryName = _("Mouse"), .height = 3, .weight = 35, .description = COMPOUND_STRING( @@ -1346,34 +1659,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rattata, 40, 40), - FRONT_PIC_FEMALE(Rattata, 40, 40), + .frontPic = gMonFrontPic_Rattata, + .frontPicFemale = gMonFrontPic_RattataF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Rattata, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Rattata, 64, 56), - BACK_PIC_FEMALE(Rattata, 64, 56), + .backPic = gMonBackPic_Rattata, + .backPicFemale = gMonBackPic_RattataF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Rattata), - ICON(Rattata, 2), - LEARNSETS(Rattata), + .palette = gMonPalette_Rattata, + .shinyPalette = gMonShinyPalette_Rattata, + .iconSprite = gMonIcon_Rattata, + .iconPalIndex = 2, + FOOTPRINT(Rattata) + .levelUpLearnset = sRattataLevelUpLearnset, + .teachableLearnset = sRattataTeachableLearnset, + .formSpeciesIdTable = sRattataFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_RATICATE}), }, [SPECIES_RATICATE] = { - RATTATA_FAMILY_MISC_INFO, - RATICATE_MISC_INFO, .baseHP = 55, .baseAttack = 81, .baseDefense = 60, .baseSpeed = 97, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 7, .weight = 185, .description = COMPOUND_STRING( "A Raticate's sturdy fangs grow steadily.\n" @@ -1384,29 +1717,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raticate, 64, 56), - FRONT_PIC_FEMALE(Raticate, 64, 56), + .frontPic = gMonFrontPic_Raticate, + .frontPicFemale = gMonFrontPic_RaticateF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Raticate, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Raticate, 64, 48), - BACK_PIC_FEMALE(Raticate, 64, 48), + .backPic = gMonBackPic_Raticate, + .backPicFemale = gMonBackPic_RaticateF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Raticate), - ICON(Raticate, 2), - LEARNSETS(Raticate), + .palette = gMonPalette_Raticate, + .shinyPalette = gMonShinyPalette_Raticate, + .iconSprite = gMonIcon_Raticate, + .iconPalIndex = 2, + FOOTPRINT(Raticate) + .levelUpLearnset = sRaticateLevelUpLearnset, + .teachableLearnset = sRaticateTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_RATTATA_ALOLAN] = { - RATTATA_FAMILY_MISC_INFO, - RATTATA_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 30, + .baseAttack = 56, + .baseDefense = 35, + .baseSpeed = 72, + .baseSpAttack = 25, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 51 : 57, + .evYield_Speed = 1, .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Rattata"), + .cryId = CRY_RATTATA, + .natDexNum = NATIONAL_DEX_RATTATA, + .categoryName = _("Mouse"), .height = 3, .weight = 38, .description = COMPOUND_STRING( @@ -1418,55 +1776,129 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RattataAlolan, 40, 48), + .frontPic = gMonFrontPic_RattataAlolan, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_RattataAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RattataAlolan, 64, 56), + .backPic = gMonBackPic_RattataAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RattataAlolan), - ICON(RattataAlolan, 2), - LEARNSETS(RattataAlolan), + .palette = gMonPalette_RattataAlolan, + .shinyPalette = gMonShinyPalette_RattataAlolan, + .iconSprite = gMonIcon_RattataAlolan, + .iconPalIndex = 2, + FOOTPRINT(Rattata) .isAlolanForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}), + .levelUpLearnset = sRattataAlolanLevelUpLearnset, + .teachableLearnset = sRattataAlolanTeachableLearnset, + .formSpeciesIdTable = sRattataFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}, + {EVO_NONE, 0, SPECIES_RATICATE_ALOLAN_TOTEM}), }, [SPECIES_RATICATE_ALOLAN] = { - RATTATA_FAMILY_MISC_INFO, - RATICATE_MISC_INFO, .baseHP = 75, .baseAttack = 71, .baseDefense = 70, .baseSpeed = 77, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 7, .weight = 255, - .description = COMPOUND_STRING( - "It forms a group of Rattata, which it \n" - "assumes command of. Each group\n" - "has its own territory, and disputes\n" - "over food happen often."), + .description = gRaticateAlolanPokedexText, .pokemonScale = 459, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RaticateAlolan, 56, 48), + .frontPic = gMonFrontPic_RaticateAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_RaticateAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RaticateAlolan, 64, 48), + .backPic = gMonBackPic_RaticateAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RaticateAlolan), - ICON(RaticateAlolan, 2), - LEARNSETS(RaticateAlolan), + .palette = gMonPalette_RaticateAlolan, + .shinyPalette = gMonShinyPalette_RaticateAlolan, + .iconSprite = gMonIcon_RaticateAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raticate) .isAlolanForm = TRUE, + .levelUpLearnset = sRaticateAlolanLevelUpLearnset, + .teachableLearnset = sRaticateAlolanTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, + }, + + [SPECIES_RATICATE_ALOLAN_TOTEM] = + { + .baseHP = 75, + .baseAttack = 71, + .baseDefense = 70, + .baseSpeed = 77, + .baseSpAttack = 40, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, + .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 14, + .weight = 1050, + .description = gRaticateAlolanPokedexText, + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RaticateAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_RaticateAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_RaticateAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_RaticateAlolan, + .shinyPalette = gMonShinyPalette_RaticateAlolan, + .iconSprite = gMonIcon_RaticateAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raticate) + .isTotem = TRUE, + .isAlolanForm = TRUE, + .levelUpLearnset = sRaticateAlolanLevelUpLearnset, + .teachableLearnset = sRaticateAlolanTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA @@ -1480,16 +1912,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 31, .baseSpDefense = 31, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 58, .evYield_Speed = 1, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Spearow"), @@ -1507,17 +1939,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spearow, 40, 40), + .frontPic = gMonFrontPic_Spearow, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Spearow, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Spearow, 56, 56), + .backPic = gMonBackPic_Spearow, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Spearow), - ICON(Spearow, 0), - .footprint = gMonFootprint_Spearow, - LEARNSETS(Spearow), + .palette = gMonPalette_Spearow, + .shinyPalette = gMonShinyPalette_Spearow, + .iconSprite = gMonIcon_Spearow, + .iconPalIndex = 0, + FOOTPRINT(Spearow) + .levelUpLearnset = sSpearowLevelUpLearnset, + .teachableLearnset = sSpearowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_FEAROW}), }, @@ -1529,16 +1966,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 61, .baseSpDefense = 61, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 90, - .expYield = 155, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 155 : 162, .evYield_Speed = 2, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Fearow"), @@ -1556,19 +1993,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fearow, 64, 64), + .frontPic = gMonFrontPic_Fearow, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Fearow, .frontAnimId = ANIM_FIGURE_8, .frontAnimDelay = 2, .enemyMonElevation = 6, - BACK_PIC(Fearow, 64, 56), + .backPic = gMonBackPic_Fearow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Fearow), - ICON(Fearow, 0), - .footprint = gMonFootprint_Fearow, - LEARNSETS(Fearow), + .palette = gMonPalette_Fearow, + .shinyPalette = gMonShinyPalette_Fearow, + .iconSprite = gMonIcon_Fearow, + .iconPalIndex = 0, + FOOTPRINT(Fearow) + .levelUpLearnset = sFearowLevelUpLearnset, + .teachableLearnset = sFearowTeachableLearnset, }, #endif //P_FAMILY_SPEAROW @@ -1581,15 +2023,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 54, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 62, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ekans"), @@ -1607,18 +2049,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ekans, 48, 48), + .frontPic = gMonFrontPic_Ekans, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Ekans, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 30, - BACK_PIC(Ekans, 56, 48), + .backPic = gMonBackPic_Ekans, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Ekans), - ICON(Ekans, 2), - .footprint = gMonFootprint_Ekans, - LEARNSETS(Ekans), + .palette = gMonPalette_Ekans, + .shinyPalette = gMonShinyPalette_Ekans, + .iconSprite = gMonIcon_Ekans, + .iconPalIndex = 2, + FOOTPRINT(Ekans) + .levelUpLearnset = sEkansLevelUpLearnset, + .teachableLearnset = sEkansTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARBOK}), }, @@ -1630,15 +2077,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 79, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 157, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 153, + #else + .expYield = 147, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Arbok"), @@ -1656,402 +2109,937 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Arbok, 64, 64), + .frontPic = gMonFrontPic_Arbok, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Arbok, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Arbok, 64, 64), + .backPic = gMonBackPic_Arbok, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Arbok), - ICON(Arbok, 2), - .footprint = gMonFootprint_Arbok, - LEARNSETS(Arbok), + .palette = gMonPalette_Arbok, + .shinyPalette = gMonShinyPalette_Arbok, + .iconSprite = gMonIcon_Arbok, + .iconPalIndex = 2, + FOOTPRINT(Arbok) + .levelUpLearnset = sArbokLevelUpLearnset, + .teachableLearnset = sArbokTeachableLearnset, }, #endif //P_FAMILY_EKANS #if P_FAMILY_PIKACHU #if P_GEN_2_CROSS_EVOS -#define PICHU_MISC_INFO \ - .baseHP = 20, \ - .baseAttack = 40, \ - .baseDefense = 15, \ - .baseSpeed = 60, \ - .baseSpAttack = 35, \ - .baseSpDefense = 35, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 190, \ - .expYield = 41, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Pichu"), \ - .cryId = CRY_PICHU, \ - .natDexNum = NATIONAL_DEX_PICHU, \ - .categoryName = _("Tiny Mouse"), \ - .height = 3, \ - .weight = 20, \ - .description = gPichuPokedexText, \ - .pokemonScale = 508, \ - .pokemonOffset = 20, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Pichu, \ - LEARNSETS(Pichu), \ - .formSpeciesIdTable = sPichuFormSpeciesIdTable [SPECIES_PICHU] = { - PICHU_MISC_INFO, - FRONT_PIC(Pichu, 32, 40), + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 15, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 41 : 42, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pichu"), + .cryId = CRY_PICHU, + .natDexNum = NATIONAL_DEX_PICHU, + .categoryName = _("Tiny Mouse"), + .height = 3, + .weight = 20, + .description = gPichuPokedexText, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pichu, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Pichu, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Pichu, 48, 56), + .backPic = gMonBackPic_Pichu, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Pichu), - ICON(Pichu, 1), + .palette = gMonPalette_Pichu, + .shinyPalette = gMonShinyPalette_Pichu, + .iconSprite = gMonIcon_Pichu, + .iconPalIndex = 1, + FOOTPRINT(Pichu) + .levelUpLearnset = sPichuLevelUpLearnset, + .teachableLearnset = sPichuTeachableLearnset, + .formSpeciesIdTable = sPichuFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}), }, [SPECIES_PICHU_SPIKY_EARED] = { - PICHU_MISC_INFO, + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 15, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 41 : 42, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PichuSpikyEared, 32, 40), + .speciesName = _("Pichu"), + .cryId = CRY_PICHU, + .natDexNum = NATIONAL_DEX_PICHU, + .categoryName = _("Tiny Mouse"), + .height = 3, + .weight = 20, + .description = gPichuPokedexText, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PichuSpikyEared, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_PichuSpikyEared, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PichuSpikyEared, 48, 56), + .backPic = gMonBackPic_PichuSpikyEared, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PichuSpikyEared), - ICON(PichuSpikyEared, 1), + .palette = gMonPalette_PichuSpikyEared, + .shinyPalette = gMonShinyPalette_PichuSpikyEared, + .iconSprite = gMonIcon_PichuSpikyEared, + .iconPalIndex = 1, + FOOTPRINT(Pichu) + .levelUpLearnset = sPichuLevelUpLearnset, + .teachableLearnset = sPichuTeachableLearnset, + .formSpeciesIdTable = sPichuFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS -#define PIKACHU_MISC_INFO \ - .baseHP = 35, \ - .baseAttack = 55, \ - .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, \ - .baseSpeed = 90, \ - .baseSpAttack = 50, \ - .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 190, \ - .expYield = 112, \ - .evYield_Speed = 2, \ - .itemRare = ITEM_LIGHT_BALL, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Pikachu"), \ - .cryId = CRY_PIKACHU, \ - .natDexNum = NATIONAL_DEX_PIKACHU, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Pikachu, \ - LEARNSETS(Pikachu), \ - .formSpeciesIdTable = sPikachuFormSpeciesIdTable - -#define PIKACHU_REGULAR_SIZE_INFO \ - .height = 4, \ - .weight = 60, \ - .pokemonScale = 479, \ - .pokemonOffset = 19, \ - .trainerScale = 256, \ - .trainerOffset = 0 +#if P_UPDATED_EXP_YIELDS >= GEN_6 + #define PIKACHU_EXP_YIELD 112 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define PIKACHU_EXP_YIELD 105 +#else + #define PIKACHU_EXP_YIELD 82 +#endif [SPECIES_PIKACHU] = { - PIKACHU_MISC_INFO, - PIKACHU_REGULAR_SIZE_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, .genderRatio = PERCENT_FEMALE(50), - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = gPikachuPokedexText, - FRONT_PIC(Pikachu, 48, 48), - FRONT_PIC_FEMALE(Pikachu, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pikachu, + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Pikachu, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 25, - BACK_PIC(Pikachu, 64, 56), - BACK_PIC_FEMALE(Pikachu, 64, 56), + .backPic = gMonBackPic_Pikachu, + .backPicFemale = gMonBackPic_PikachuF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Pikachu), - ICON(Pikachu, 2), + .palette = gMonPalette_Pikachu, + .shinyPalette = gMonShinyPalette_Pikachu, + .iconSprite = gMonIcon_Pikachu, + .iconPalIndex = 2, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Pikachu, 2), + .iconSpriteFemale = gMonIcon_PikachuF, + .iconPalIndexFemale = 2, #endif + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, .formChangeTable = sPikachuFormChangeTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, {EVO_NONE, 0, SPECIES_RAICHU_ALOLAN}), }, #if P_COSPLAY_PIKACHU_FORMS -#define PIKACHU_COSPLAY_MISC_INFO \ - PIKACHU_MISC_INFO, \ - PIKACHU_REGULAR_SIZE_INFO, \ - .genderRatio = MON_FEMALE, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .description = gPikachuPokedexText - [SPECIES_PIKACHU_COSPLAY] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuCosplay, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuCosplay, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuCosplay, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuCosplay, 64, 56), + .backPic = gMonBackPic_PikachuCosplay, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuCosplay), - ICON(PikachuCosplay, 2), + .palette = gMonPalette_PikachuCosplay, + .shinyPalette = gMonShinyPalette_PikachuCosplay, + .iconSprite = gMonIcon_PikachuCosplay, + .iconPalIndex = 2, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_ROCK_STAR] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuRockStar, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuRockStar, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuRockStar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuRockStar, 64, 56), + .backPic = gMonBackPic_PikachuRockStar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuRockStar), - ICON(PikachuRockStar, 1), + .palette = gMonPalette_PikachuRockStar, + .shinyPalette = gMonShinyPalette_PikachuRockStar, + .iconSprite = gMonIcon_PikachuRockStar, + .iconPalIndex = 1, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_BELLE] = { - PIKACHU_COSPLAY_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PikachuBelle, 48, 48), + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuBelle, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuBelle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuBelle, 64, 56), + .backPic = gMonBackPic_PikachuBelle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuBelle), - ICON(PikachuBelle, 0), + .palette = gMonPalette_PikachuBelle, + .shinyPalette = gMonShinyPalette_PikachuBelle, + .iconSprite = gMonIcon_PikachuBelle, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_POP_STAR] = { - PIKACHU_COSPLAY_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PikachuPopStar, 48, 48), + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPopStar, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPopStar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPopStar, 64, 56), + .backPic = gMonBackPic_PikachuPopStar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPopStar), - ICON(PikachuPopStar, 0), + .palette = gMonPalette_PikachuPopStar, + .shinyPalette = gMonShinyPalette_PikachuPopStar, + .iconSprite = gMonIcon_PikachuPopStar, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_PH_D] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuPhD, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPhD, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPhD, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPhD, 64, 56), + .backPic = gMonBackPic_PikachuPhD, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPhD), - ICON(PikachuPhD, 1), + .palette = gMonPalette_PikachuPhD, + .shinyPalette = gMonShinyPalette_PikachuPhD, + .iconSprite = gMonIcon_PikachuPhD, + .iconPalIndex = 1, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_LIBRE] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuLibre, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuLibre, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuLibre, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuLibre, 64, 56), + .backPic = gMonBackPic_PikachuLibre, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuLibre), - ICON(PikachuLibre, 0), + .palette = gMonPalette_PikachuLibre, + .shinyPalette = gMonShinyPalette_PikachuLibre, + .iconSprite = gMonIcon_PikachuLibre, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS - -#define PIKACHU_CAP_MISC_INFO \ - PIKACHU_MISC_INFO, \ - PIKACHU_REGULAR_SIZE_INFO, \ - .genderRatio = MON_MALE, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED } - [SPECIES_PIKACHU_ORIGINAL_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across many different regions."), - FRONT_PIC(PikachuOriginalCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuOriginalCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuOriginalCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuOriginalCap, 64, 56), + .backPic = gMonBackPic_PikachuOriginalCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuOriginalCap), - ICON(PikachuOriginalCap, 0), + .palette = gMonPalette_PikachuOriginalCap, + .shinyPalette = gMonShinyPalette_PikachuOriginalCap, + .iconSprite = gMonIcon_PikachuOriginalCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_HOENN_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Hoenn region together."), - FRONT_PIC(PikachuHoennCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuHoennCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuHoennCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuHoennCap, 64, 56), + .backPic = gMonBackPic_PikachuHoennCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuHoennCap), - ICON(PikachuHoennCap, 0), + .palette = gMonPalette_PikachuHoennCap, + .shinyPalette = gMonShinyPalette_PikachuHoennCap, + .iconSprite = gMonIcon_PikachuHoennCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_SINNOH_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Sinnoh region together."), - FRONT_PIC(PikachuSinnohCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuSinnohCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuSinnohCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuSinnohCap, 64, 56), + .backPic = gMonBackPic_PikachuSinnohCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuSinnohCap), - ICON(PikachuSinnohCap, 0), + .palette = gMonPalette_PikachuSinnohCap, + .shinyPalette = gMonShinyPalette_PikachuSinnohCap, + .iconSprite = gMonIcon_PikachuSinnohCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_UNOVA_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Unova region together."), - FRONT_PIC(PikachuUnovaCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuUnovaCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuUnovaCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuUnovaCap, 64, 56), + .backPic = gMonBackPic_PikachuUnovaCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuUnovaCap), - ICON(PikachuUnovaCap, 0), + .palette = gMonPalette_PikachuUnovaCap, + .shinyPalette = gMonShinyPalette_PikachuUnovaCap, + .iconSprite = gMonIcon_PikachuUnovaCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_KALOS_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Kalos region together."), - FRONT_PIC(PikachuKalosCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuKalosCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuKalosCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuKalosCap, 64, 56), + .backPic = gMonBackPic_PikachuKalosCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuKalosCap), - ICON(PikachuKalosCap, 0), + .palette = gMonPalette_PikachuKalosCap, + .shinyPalette = gMonShinyPalette_PikachuKalosCap, + .iconSprite = gMonIcon_PikachuKalosCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_ALOLA_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Alola region together."), - FRONT_PIC(PikachuAlolaCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuAlolaCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuAlolaCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuAlolaCap, 64, 56), + .backPic = gMonBackPic_PikachuAlolaCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuAlolaCap), - ICON(PikachuAlolaCap, 0), + .palette = gMonPalette_PikachuAlolaCap, + .shinyPalette = gMonShinyPalette_PikachuAlolaCap, + .iconSprite = gMonIcon_PikachuAlolaCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_PARTNER_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed as the two overcame\n" "many hardships together."), - FRONT_PIC(PikachuPartnerCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPartnerCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPartnerCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPartnerCap, 64, 56), + .backPic = gMonBackPic_PikachuPartnerCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPartnerCap), - ICON(PikachuPartnerCap, 0), + .palette = gMonPalette_PikachuPartnerCap, + .shinyPalette = gMonShinyPalette_PikachuPartnerCap, + .iconSprite = gMonIcon_PikachuPartnerCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_WORLD_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the world together."), - FRONT_PIC(PikachuWorldCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuWorldCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuWorldCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuWorldCap, 64, 56), + .backPic = gMonBackPic_PikachuWorldCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuWorldCap), - ICON(PikachuWorldCap, 0), + .palette = gMonPalette_PikachuWorldCap, + .shinyPalette = gMonShinyPalette_PikachuWorldCap, + .iconSprite = gMonIcon_PikachuWorldCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, #endif //P_CAP_PIKACHU_FORMS @@ -2059,64 +3047,157 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_GIGANTAMAX_FORMS [SPECIES_PIKACHU_GIGANTAMAX] = { - PIKACHU_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, .genderRatio = PERCENT_FEMALE(50), - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), .height = 210, .weight = 0, - .pokemonScale = 479, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, .description = COMPOUND_STRING( "When it smashes its opponents with\n" "its bolt-shaped tail, it delivers a\n" "surge of electricity equivalent to a\n" "lightning strike."), - FRONT_PIC(PikachuGigantamax, 64, 64), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_PikachuGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuGigantamax, 64, 64), + .backPic = gMonBackPic_PikachuGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuGigantamax), - ICON(PikachuGigantamax, 2), - .formChangeTable = sPikachuFormChangeTable, + .palette = gMonPalette_PikachuGigantamax, + .shinyPalette = gMonShinyPalette_PikachuGigantamax, + .iconSprite = gMonIcon_PikachuGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Pikachu) .isGigantamax = TRUE, + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + .formChangeTable = sPikachuFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + [SPECIES_PIKACHU_PARTNER] = + { + .baseHP = 45, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 120, + .baseSpAttack = 75, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pikachu, + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Pikachu, + .frontAnimId = ANIM_FLASH_YELLOW, + .frontAnimDelay = 25, + .backPic = gMonBackPic_Pikachu, + .backPicFemale = gMonBackPic_PikachuF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + .palette = gMonPalette_Pikachu, + .shinyPalette = gMonShinyPalette_Pikachu, + .iconSprite = gMonIcon_PikachuPartner, + .iconPalIndex = 2, + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + .iconSpriteFemale = gMonIcon_PikachuPartnerF, + .iconPalIndexFemale = 2, + #endif + FOOTPRINT(Pikachu) + .cannotBeTraded = TRUE, + .allPerfectIVs = TRUE, + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + }, + #define RAICHU_SPEED (P_UPDATED_STATS >= GEN_6 ? 110 : 100) -#define RAICHU_MISC_INFO \ - .catchRate = 75, \ - .expYield = 218, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .speciesName = _("Raichu"), \ - .cryId = CRY_RAICHU, \ - .natDexNum = NATIONAL_DEX_RAICHU, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Raichu, \ - .formSpeciesIdTable = sRaichuFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define RAICHU_EXP_YIELD 243 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define RAICHU_EXP_YIELD 218 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define RAICHU_EXP_YIELD 214 +#else + #define RAICHU_EXP_YIELD 122 +#endif [SPECIES_RAICHU] = { - RAICHU_MISC_INFO, .baseHP = 60, .baseAttack = 90, .baseDefense = 55, .baseSpeed = RAICHU_SPEED, .baseSpAttack = 90, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 75, + .expYield = RAICHU_EXP_YIELD, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Raichu"), + .cryId = CRY_RAICHU, + .natDexNum = NATIONAL_DEX_RAICHU, + .categoryName = _("Mouse"), .height = 8, .weight = 300, .description = COMPOUND_STRING( @@ -2128,33 +3209,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raichu, 64, 64), - FRONT_PIC_FEMALE(Raichu, 64, 64), + .frontPic = gMonFrontPic_Raichu, + .frontPicFemale = gMonFrontPic_RaichuF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Raichu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Raichu, 64, 56), + .backPic = gMonBackPic_Raichu, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Raichu), - ICON(Raichu, 0), - LEARNSETS(Raichu), + .palette = gMonPalette_Raichu, + .shinyPalette = gMonShinyPalette_Raichu, + .iconSprite = gMonIcon_Raichu, + .iconPalIndex = 0, + FOOTPRINT(Raichu) + .levelUpLearnset = sRaichuLevelUpLearnset, + .teachableLearnset = sRaichuTeachableLearnset, + .formSpeciesIdTable = sRaichuFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_RAICHU_ALOLAN] = { - RAICHU_MISC_INFO, .baseHP = 60, .baseAttack = 85, .baseDefense = 50, .baseSpeed = RAICHU_SPEED, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_PSYCHIC }, - .abilities = { ABILITY_SURGE_SURFER, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_PSYCHIC), + .catchRate = 75, + .expYield = RAICHU_EXP_YIELD, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_SURGE_SURFER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isAlolanForm = TRUE, + .speciesName = _("Raichu"), + .cryId = CRY_RAICHU, + .natDexNum = NATIONAL_DEX_RAICHU, + .categoryName = _("Mouse"), .height = 7, .weight = 210, .description = COMPOUND_STRING( @@ -2166,65 +3265,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RaichuAlolan, 64, 64), + .frontPic = gMonFrontPic_RaichuAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RaichuAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(RaichuAlolan, 56, 56), + .backPic = gMonBackPic_RaichuAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RaichuAlolan), - ICON(RaichuAlolan, 2), - LEARNSETS(RaichuAlolan), + .palette = gMonPalette_RaichuAlolan, + .shinyPalette = gMonShinyPalette_RaichuAlolan, + .iconSprite = gMonIcon_RaichuAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raichu) + .isAlolanForm = TRUE, + .levelUpLearnset = sRaichuAlolanLevelUpLearnset, + .teachableLearnset = sRaichuAlolanTeachableLearnset, + .formSpeciesIdTable = sRaichuFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU #if P_FAMILY_SANDSHREW -#define SANDSHREW_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define SANDSHREW_MISC_INFO \ - .catchRate = 255, \ - .expYield = 60, \ - .evYield_Defense = 1, \ - .speciesName = _("Sandshrew"), \ - .cryId = CRY_SANDSHREW, \ - .natDexNum = NATIONAL_DEX_SANDSHREW, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Sandshrew, \ - .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, \ - SANDSHREW_FAMILY_MISC_INFO - -#define SANDSLASH_MISC_INFO \ - .catchRate = 90, \ - .expYield = 158, \ - .evYield_Defense = 2, \ - .speciesName = _("Sandslash"), \ - .cryId = CRY_SANDSLASH, \ - .natDexNum = NATIONAL_DEX_SANDSLASH, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Sandslash, \ - .formSpeciesIdTable = sSandslashFormSpeciesIdTable, \ - SANDSHREW_FAMILY_MISC_INFO - [SPECIES_SANDSHREW] = { - SANDSHREW_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 85, .baseSpeed = 40, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 93, + .evYield_Defense = 1, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sandshrew"), + .cryId = CRY_SANDSHREW, + .natDexNum = NATIONAL_DEX_SANDSHREW, + .categoryName = _("Mouse"), .height = 6, .weight = 120, .description = COMPOUND_STRING( @@ -2236,31 +3324,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandshrew, 48, 48), + .frontPic = gMonFrontPic_Sandshrew, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sandshrew, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Sandshrew, 48, 40), + .backPic = gMonBackPic_Sandshrew, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Sandshrew), - ICON(Sandshrew, 2), - LEARNSETS(Sandshrew), + .palette = gMonPalette_Sandshrew, + .shinyPalette = gMonShinyPalette_Sandshrew, + .iconSprite = gMonIcon_Sandshrew, + .iconPalIndex = 2, + FOOTPRINT(Sandshrew) + .levelUpLearnset = sSandshrewLevelUpLearnset, + .teachableLearnset = sSandshrewTeachableLearnset, + .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SANDSLASH}), }, [SPECIES_SANDSLASH] = { - SANDSLASH_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 110, .baseSpeed = 65, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 163, + .evYield_Defense = 2, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sandslash"), + .cryId = CRY_SANDSLASH, + .natDexNum = NATIONAL_DEX_SANDSLASH, + .categoryName = _("Mouse"), .height = 10, .weight = 295, .description = COMPOUND_STRING( @@ -2272,31 +3379,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandslash, 64, 56), + .frontPic = gMonFrontPic_Sandslash, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Sandslash, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Sandslash, 64, 48), + .backPic = gMonBackPic_Sandslash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Sandslash), - ICON(Sandslash, 2), - LEARNSETS(Sandslash), + .palette = gMonPalette_Sandslash, + .shinyPalette = gMonShinyPalette_Sandslash, + .iconSprite = gMonIcon_Sandslash, + .iconPalIndex = 2, + FOOTPRINT(Sandslash) + .levelUpLearnset = sSandslashLevelUpLearnset, + .teachableLearnset = sSandslashTeachableLearnset, + .formSpeciesIdTable = sSandslashFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_SANDSHREW_ALOLAN] = { - SANDSHREW_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 90, .baseSpeed = 40, .baseSpAttack = 10, .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ICE, TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 93, + .evYield_Defense = 1, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sandshrew"), + .cryId = CRY_SANDSHREW, + .natDexNum = NATIONAL_DEX_SANDSHREW, + .categoryName = _("Mouse"), .height = 7, .weight = 400, .description = COMPOUND_STRING( @@ -2308,32 +3434,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandshrewAlolan, 40, 40), + .frontPic = gMonFrontPic_SandshrewAlolan, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_SandshrewAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandshrewAlolan, 56, 40), + .backPic = gMonBackPic_SandshrewAlolan, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandshrewAlolan), - ICON(SandshrewAlolan, 0), - LEARNSETS(SandshrewAlolan), + .palette = gMonPalette_SandshrewAlolan, + .shinyPalette = gMonShinyPalette_SandshrewAlolan, + .iconSprite = gMonIcon_SandshrewAlolan, + .iconPalIndex = 0, + FOOTPRINT(Sandshrew) .isAlolanForm = TRUE, + .levelUpLearnset = sSandshrewAlolanLevelUpLearnset, + .teachableLearnset = sSandshrewAlolanTeachableLearnset, + .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}), }, [SPECIES_SANDSLASH_ALOLAN] = { - SANDSLASH_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 65, .baseSpAttack = 25, .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ICE, TYPE_STEEL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 163, + .evYield_Defense = 2, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sandslash"), + .cryId = CRY_SANDSLASH, + .natDexNum = NATIONAL_DEX_SANDSLASH, + .categoryName = _("Mouse"), .height = 12, .weight = 550, .description = COMPOUND_STRING( @@ -2345,17 +3490,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandslashAlolan, 64, 64), + .frontPic = gMonFrontPic_SandslashAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_SandslashAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandslashAlolan, 64, 56), + .backPic = gMonBackPic_SandslashAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandslashAlolan), - ICON(SandslashAlolan, 0), - LEARNSETS(SandslashAlolan), + .palette = gMonPalette_SandslashAlolan, + .shinyPalette = gMonShinyPalette_SandslashAlolan, + .iconSprite = gMonIcon_SandslashAlolan, + .iconPalIndex = 0, + FOOTPRINT(Sandslash) .isAlolanForm = TRUE, + .levelUpLearnset = sSandslashAlolanLevelUpLearnset, + .teachableLearnset = sSandslashAlolanTeachableLearnset, + .formSpeciesIdTable = sSandslashFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW @@ -2369,15 +3521,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 41, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 235, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 59, .evYield_HP = 1, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidoran♀"), @@ -2395,18 +3547,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(NidoranF, 40, 40), + .frontPic = gMonFrontPic_NidoranF, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_NidoranF, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 28, - BACK_PIC(NidoranF, 48, 40), + .backPic = gMonBackPic_NidoranF, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(NidoranF), - ICON(NidoranF, 0), - .footprint = gMonFootprint_NidoranF, - LEARNSETS(NidoranF), + .palette = gMonPalette_NidoranF, + .shinyPalette = gMonShinyPalette_NidoranF, + .iconSprite = gMonIcon_NidoranF, + .iconPalIndex = 0, + FOOTPRINT(NidoranF) + .levelUpLearnset = sNidoranFLevelUpLearnset, + .teachableLearnset = sNidoranFTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINA}), }, @@ -2418,15 +3575,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 56, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 117, .evYield_HP = 2, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidorina"), @@ -2444,17 +3601,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidorina, 48, 48), + .frontPic = gMonFrontPic_Nidorina, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nidorina, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Nidorina, 56, 56), + .backPic = gMonBackPic_Nidorina, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Nidorina), - ICON(Nidorina, 0), - .footprint = gMonFootprint_Nidorina, - LEARNSETS(Nidorina), + .palette = gMonPalette_Nidorina, + .shinyPalette = gMonShinyPalette_Nidorina, + .iconSprite = gMonIcon_Nidorina, + .iconPalIndex = 0, + FOOTPRINT(Nidorina) + .levelUpLearnset = sNidorinaLevelUpLearnset, + .teachableLearnset = sNidorinaTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}), }, @@ -2466,15 +3628,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 76, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 253, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 227, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 223, + #else + .expYield = 194, + #endif .evYield_HP = 3, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidoqueen"), @@ -2492,17 +3662,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidoqueen, 64, 64), + .frontPic = gMonFrontPic_Nidoqueen, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Nidoqueen, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Nidoqueen, 64, 56), + .backPic = gMonBackPic_Nidoqueen, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nidoqueen), - ICON(Nidoqueen, 2), - .footprint = gMonFootprint_Nidoqueen, - LEARNSETS(Nidoqueen), + .palette = gMonPalette_Nidoqueen, + .shinyPalette = gMonShinyPalette_Nidoqueen, + .iconSprite = gMonIcon_Nidoqueen, + .iconPalIndex = 2, + FOOTPRINT(Nidoqueen) + .levelUpLearnset = sNidoqueenLevelUpLearnset, + .teachableLearnset = sNidoqueenTeachableLearnset, }, [SPECIES_NIDORAN_M] = @@ -2513,15 +3688,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 235, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 60, .evYield_Attack = 1, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidoran♂"), @@ -2539,17 +3714,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(NidoranM, 40, 40), + .frontPic = gMonFrontPic_NidoranM, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_NidoranM, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(NidoranM, 48, 48), + .backPic = gMonBackPic_NidoranM, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(NidoranM), - ICON(NidoranM, 2), - .footprint = gMonFootprint_NidoranM, - LEARNSETS(NidoranM), + .palette = gMonPalette_NidoranM, + .shinyPalette = gMonShinyPalette_NidoranM, + .iconSprite = gMonIcon_NidoranM, + .iconPalIndex = 2, + FOOTPRINT(NidoranM) + .levelUpLearnset = sNidoranMLevelUpLearnset, + .teachableLearnset = sNidoranMTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINO}), }, @@ -2561,15 +3741,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 118, .evYield_Attack = 2, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidorino"), @@ -2587,17 +3767,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidorino, 56, 48), + .frontPic = gMonFrontPic_Nidorino, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nidorino, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Nidorino, 64, 56), + .backPic = gMonBackPic_Nidorino, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Nidorino), - ICON(Nidorino, 2), - .footprint = gMonFootprint_Nidorino, - LEARNSETS(Nidorino), + .palette = gMonPalette_Nidorino, + .shinyPalette = gMonShinyPalette_Nidorino, + .iconSprite = gMonIcon_Nidorino, + .iconPalIndex = 2, + FOOTPRINT(Nidorino) + .levelUpLearnset = sNidorinoLevelUpLearnset, + .teachableLearnset = sNidorinoTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}), }, @@ -2609,15 +3794,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 253, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 227, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 223, + #else + .expYield = 195, + #endif .evYield_Attack = 3, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidoking"), @@ -2635,18 +3828,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidoking, 64, 64), + .frontPic = gMonFrontPic_Nidoking, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Nidoking, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 25, - BACK_PIC(Nidoking, 64, 64), + .backPic = gMonBackPic_Nidoking, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nidoking), - ICON(Nidoking, 2), - .footprint = gMonFootprint_Nidoking, - LEARNSETS(Nidoking), + .palette = gMonPalette_Nidoking, + .shinyPalette = gMonShinyPalette_Nidoking, + .iconSprite = gMonIcon_Nidoking, + .iconPalIndex = 2, + FOOTPRINT(Nidoking) + .levelUpLearnset = sNidokingLevelUpLearnset, + .teachableLearnset = sNidokingTeachableLearnset, }, #endif //P_FAMILY_NIDORAN @@ -2668,14 +3866,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 55, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 150, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 37, .evYield_SpDefense = 1, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2694,17 +3892,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cleffa, 32, 32), + .frontPic = gMonFrontPic_Cleffa, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Cleffa, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Cleffa, 48, 40), + .backPic = gMonBackPic_Cleffa, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Cleffa), - ICON(Cleffa, 0), - .footprint = gMonFootprint_Cleffa, - LEARNSETS(Cleffa), + .palette = gMonPalette_Cleffa, + .shinyPalette = gMonShinyPalette_Cleffa, + .iconSprite = gMonIcon_Cleffa, + .iconPalIndex = 0, + FOOTPRINT(Cleffa) + .levelUpLearnset = sCleffaLevelUpLearnset, + .teachableLearnset = sCleffaTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}), }, #endif //P_GEN_2_CROSS_EVOS @@ -2719,14 +3922,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 65, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 150, - .expYield = 113, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 113 : 68, .evYield_HP = 2, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2745,17 +3948,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clefairy, 40, 40), + .frontPic = gMonFrontPic_Clefairy, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Clefairy, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clefairy, 56, 40), + .backPic = gMonBackPic_Clefairy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clefairy), - ICON(Clefairy, 0), - .footprint = gMonFootprint_Clefairy, - LEARNSETS(Clefairy), + .palette = gMonPalette_Clefairy, + .shinyPalette = gMonShinyPalette_Clefairy, + .iconSprite = gMonIcon_Clefairy, + .iconPalIndex = 0, + FOOTPRINT(Clefairy) + .levelUpLearnset = sClefairyLevelUpLearnset, + .teachableLearnset = sClefairyTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}), }, @@ -2769,14 +3977,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 90, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 25, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 242, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 217, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 213, + #else + .expYield = 129, + #endif .evYield_HP = 3, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2795,180 +4011,247 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clefable, 56, 56), + .frontPic = gMonFrontPic_Clefable, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Clefable, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clefable, 64, 48), + .backPic = gMonBackPic_Clefable, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clefable), - ICON(Clefable, 0), - .footprint = gMonFootprint_Clefable, - LEARNSETS(Clefable), + .palette = gMonPalette_Clefable, + .shinyPalette = gMonShinyPalette_Clefable, + .iconSprite = gMonIcon_Clefable, + .iconPalIndex = 0, + FOOTPRINT(Clefable) + .levelUpLearnset = sClefableLevelUpLearnset, + .teachableLearnset = sClefableTeachableLearnset, }, #endif //P_FAMILY_CLEFAIRY #if P_FAMILY_VULPIX -#define VULPIX_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define VULPIX_MISC_INFO \ - .baseHP = 38, \ - .baseAttack = 41, \ - .baseDefense = 40, \ - .baseSpeed = 65, \ - .baseSpAttack = 50, \ - .baseSpDefense = 65, \ - .catchRate = 190, \ - .expYield = 60, \ - .evYield_Speed = 1, \ - .speciesName = _("Vulpix"), \ - .cryId = CRY_VULPIX, \ - .natDexNum = NATIONAL_DEX_VULPIX, \ - .categoryName = _("Fox"), \ - .height = 6, \ - .weight = 99, \ - .pokemonScale = 542, \ - .pokemonOffset = 19, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Vulpix, \ - .formSpeciesIdTable = sVulpixFormSpeciesIdTable,\ - VULPIX_FAMILY_MISC_INFO - -#define NINETALES_MISC_INFO \ - .catchRate = 75, \ - .expYield = 177, \ - .evYield_Speed = 1, \ - .evYield_SpDefense = 1, \ - .speciesName = _("Ninetales"), \ - .cryId = CRY_NINETALES, \ - .natDexNum = NATIONAL_DEX_NINETALES, \ - .categoryName = _("Fox"), \ - .height = 11, \ - .weight = 199, \ - .pokemonScale = 339, \ - .pokemonOffset = 10, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Ninetales, \ - .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, \ - VULPIX_FAMILY_MISC_INFO - [SPECIES_VULPIX] = { - VULPIX_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 38, + .baseAttack = 41, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, + .evYield_Speed = 1, .itemRare = ITEM_CHARCOAL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Vulpix"), + .cryId = CRY_VULPIX, + .natDexNum = NATIONAL_DEX_VULPIX, + .categoryName = _("Fox"), + .height = 6, + .weight = 99, .description = COMPOUND_STRING( "It can freely control fire, making fiery\n" "orbs fly like will-o'-the-wisps. Just\n" "before evolution, its six tails grow hot \n" "as if on fire."), - FRONT_PIC(Vulpix, 56, 48), + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Vulpix, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Vulpix, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Vulpix, 64, 48), + .backPic = gMonBackPic_Vulpix, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Vulpix), - ICON(Vulpix, 5), - LEARNSETS(Vulpix), + .palette = gMonPalette_Vulpix, + .shinyPalette = gMonShinyPalette_Vulpix, + .iconSprite = gMonIcon_Vulpix, + .iconPalIndex = 5, + FOOTPRINT(Vulpix) + .levelUpLearnset = sVulpixLevelUpLearnset, + .teachableLearnset = sVulpixTeachableLearnset, + .formSpeciesIdTable = sVulpixFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}), }, [SPECIES_NINETALES] = { - NINETALES_MISC_INFO, .baseHP = 73, .baseAttack = 76, .baseDefense = 75, .baseSpeed = 100, .baseSpAttack = 81, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 178, + .evYield_Speed = 1, + .evYield_SpDefense = 1, .itemRare = ITEM_CHARCOAL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ninetales"), + .cryId = CRY_NINETALES, + .natDexNum = NATIONAL_DEX_NINETALES, + .categoryName = _("Fox"), + .height = 11, + .weight = 199, .description = COMPOUND_STRING( "It has long been said that each of the\n" "nine tails embody an enchanted power.\n" "A long-lived Ninetales will have fur that\n" "shines like gold."), - FRONT_PIC(Ninetales, 64, 64), + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ninetales, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Ninetales, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Ninetales, 64, 56), + .backPic = gMonBackPic_Ninetales, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Ninetales), - ICON(Ninetales, 3), - LEARNSETS(Ninetales), + .palette = gMonPalette_Ninetales, + .shinyPalette = gMonShinyPalette_Ninetales, + .iconSprite = gMonIcon_Ninetales, + .iconPalIndex = 3, + FOOTPRINT(Ninetales) + .levelUpLearnset = sNinetalesLevelUpLearnset, + .teachableLearnset = sNinetalesTeachableLearnset, + .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_VULPIX_ALOLAN] = { - VULPIX_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 38, + .baseAttack = 41, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, + .evYield_Speed = 1, + .itemRare = ITEM_SNOWBALL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Vulpix"), + .cryId = CRY_VULPIX, + .natDexNum = NATIONAL_DEX_VULPIX, + .categoryName = _("Fox"), + .height = 6, + .weight = 99, .description = COMPOUND_STRING( "They live together in a skulk, helping\n" "one another. In hot weather, this Pokémon\n" "makes ice shards with its six tails and\n" "sprays them around to cool itself off."), - FRONT_PIC(VulpixAlolan, 48, 48), + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_VulpixAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_VulpixAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VulpixAlolan, 64, 56), + .backPic = gMonBackPic_VulpixAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VulpixAlolan), - ICON(VulpixAlolan, 2), - LEARNSETS(VulpixAlolan), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), + .palette = gMonPalette_VulpixAlolan, + .shinyPalette = gMonShinyPalette_VulpixAlolan, + .iconSprite = gMonIcon_VulpixAlolan, + .iconPalIndex = 2, + FOOTPRINT(Vulpix) .isAlolanForm = TRUE, + .levelUpLearnset = sVulpixAlolanLevelUpLearnset, + .teachableLearnset = sVulpixAlolanTeachableLearnset, + .formSpeciesIdTable = sVulpixFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), }, [SPECIES_NINETALES_ALOLAN] = { - NINETALES_MISC_INFO, .baseHP = 73, .baseAttack = 67, .baseDefense = 75, .baseSpeed = 109, .baseSpAttack = 81, .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ICE, TYPE_FAIRY), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 178, + .evYield_Speed = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_SNOWBALL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Ninetales"), + .cryId = CRY_NINETALES, + .natDexNum = NATIONAL_DEX_NINETALES, + .categoryName = _("Fox"), + .height = 11, + .weight = 199, .description = COMPOUND_STRING( "While it will guide travelers who get lost\n" "on a snowy mountain down to the\n" "mountain's base, it won't forgive anyone\n" "who harms nature."), - FRONT_PIC(NinetalesAlolan, 64, 64), + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_NinetalesAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_NinetalesAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(NinetalesAlolan, 64, 56), + .backPic = gMonBackPic_NinetalesAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NinetalesAlolan), - ICON(NinetalesAlolan, 2), - LEARNSETS(NinetalesAlolan), + .palette = gMonPalette_NinetalesAlolan, + .shinyPalette = gMonShinyPalette_NinetalesAlolan, + .iconSprite = gMonIcon_NinetalesAlolan, + .iconPalIndex = 2, + FOOTPRINT(Ninetales) .isAlolanForm = TRUE, + .levelUpLearnset = sNinetalesAlolanLevelUpLearnset, + .teachableLearnset = sNinetalesAlolanTeachableLearnset, + .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_VULPIX @@ -2991,13 +4274,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 20, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 170, - .expYield = 42, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 39, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3016,17 +4299,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Igglybuff, 32, 32), + .frontPic = gMonFrontPic_Igglybuff, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Igglybuff, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Igglybuff, 40, 40), + .backPic = gMonBackPic_Igglybuff, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Igglybuff), - ICON(Igglybuff, 1), - .footprint = gMonFootprint_Igglybuff, - LEARNSETS(Igglybuff), + .palette = gMonPalette_Igglybuff, + .shinyPalette = gMonShinyPalette_Igglybuff, + .iconSprite = gMonIcon_Igglybuff, + .iconPalIndex = 1, + FOOTPRINT(Igglybuff) + .levelUpLearnset = sIgglybuffLevelUpLearnset, + .teachableLearnset = sIgglybuffTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}), }, #endif //P_GEN_2_CROSS_EVOS @@ -3041,14 +4329,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 25, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 170, - .expYield = 95, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 95 : 76, .evYield_HP = 2, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3067,17 +4355,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jigglypuff, 40, 40), + .frontPic = gMonFrontPic_Jigglypuff, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Jigglypuff, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Jigglypuff, 56, 48), + .backPic = gMonBackPic_Jigglypuff, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Jigglypuff), - ICON(Jigglypuff, 0), - .footprint = gMonFootprint_Jigglypuff, - LEARNSETS(Jigglypuff), + .palette = gMonPalette_Jigglypuff, + .shinyPalette = gMonShinyPalette_Jigglypuff, + .iconSprite = gMonIcon_Jigglypuff, + .iconPalIndex = 0, + FOOTPRINT(Jigglypuff) + .levelUpLearnset = sJigglypuffLevelUpLearnset, + .teachableLearnset = sJigglypuffTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}), }, @@ -3091,14 +4384,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 50, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 218, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 196, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 191, + #else + .expYield = 109, + #endif .evYield_HP = 3, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3117,17 +4418,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wigglytuff, 48, 64), + .frontPic = gMonFrontPic_Wigglytuff, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Wigglytuff, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Wigglytuff, 56, 64), + .backPic = gMonBackPic_Wigglytuff, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW, - PALETTES(Wigglytuff), - ICON(Wigglytuff, 0), - .footprint = gMonFootprint_Wigglytuff, - LEARNSETS(Wigglytuff), + .palette = gMonPalette_Wigglytuff, + .shinyPalette = gMonShinyPalette_Wigglytuff, + .iconSprite = gMonIcon_Wigglytuff, + .iconPalIndex = 0, + FOOTPRINT(Wigglytuff) + .levelUpLearnset = sWigglytuffLevelUpLearnset, + .teachableLearnset = sWigglytuffTeachableLearnset, }, #endif //P_FAMILY_JIGGLYPUFF @@ -3140,15 +4446,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 255, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 54, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Zubat"), @@ -3166,20 +4472,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Zubat, 56, 48), - FRONT_PIC_FEMALE(Zubat, 56, 48), + .frontPic = gMonFrontPic_Zubat, + .frontPicFemale = gMonFrontPic_ZubatF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Zubat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 16, - BACK_PIC(Zubat, 56, 56), - BACK_PIC_FEMALE(Zubat, 56, 56), + .backPic = gMonBackPic_Zubat, + .backPicFemale = gMonBackPic_ZubatF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Zubat), - ICON(Zubat, 2), - .footprint = gMonFootprint_Zubat, - LEARNSETS(Zubat), + .palette = gMonPalette_Zubat, + .shinyPalette = gMonShinyPalette_Zubat, + .iconSprite = gMonIcon_Zubat, + .iconPalIndex = 2, + FOOTPRINT(Zubat) + .levelUpLearnset = sZubatLevelUpLearnset, + .teachableLearnset = sZubatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_GOLBAT}), }, @@ -3191,15 +4504,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 90, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 171, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Golbat"), @@ -3217,20 +4530,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Golbat, 64, 56), - FRONT_PIC_FEMALE(Golbat, 64, 56), + .frontPic = gMonFrontPic_Golbat, + .frontPicFemale = gMonFrontPic_GolbatF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Golbat, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Golbat, 56, 40), - BACK_PIC_FEMALE(Golbat, 56, 40), + .backPic = gMonBackPic_Golbat, + .backPicFemale = gMonBackPic_GolbatF, + .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Golbat), - ICON(Golbat, 2), - .footprint = gMonFootprint_Golbat, - LEARNSETS(Golbat), + .palette = gMonPalette_Golbat, + .shinyPalette = gMonShinyPalette_Golbat, + .iconSprite = gMonIcon_Golbat, + .iconPalIndex = 2, + FOOTPRINT(Golbat) + .levelUpLearnset = sGolbatLevelUpLearnset, + .teachableLearnset = sGolbatTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CROBAT}), }, @@ -3243,15 +4563,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 130, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 204, + #endif .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Crobat"), @@ -3269,18 +4595,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 281, .trainerOffset = 1, - FRONT_PIC(Crobat, 64, 56), + .frontPic = gMonFrontPic_Crobat, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Crobat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Crobat, 64, 64), + .backPic = gMonBackPic_Crobat, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Crobat), - ICON(Crobat, 2), - .footprint = gMonFootprint_Crobat, - LEARNSETS(Crobat), + .palette = gMonPalette_Crobat, + .shinyPalette = gMonShinyPalette_Crobat, + .iconSprite = gMonIcon_Crobat, + .iconPalIndex = 2, + FOOTPRINT(Crobat) + .levelUpLearnset = sCrobatLevelUpLearnset, + .teachableLearnset = sCrobatTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ZUBAT @@ -3294,15 +4625,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 75, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 78, .evYield_SpAttack = 1, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Oddish"), @@ -3320,17 +4652,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Oddish, 40, 40), + .frontPic = gMonFrontPic_Oddish, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Oddish, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Oddish, 48, 48), + .backPic = gMonBackPic_Oddish, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Oddish), - ICON(Oddish, 4), - .footprint = gMonFootprint_Oddish, - LEARNSETS(Oddish), + .palette = gMonPalette_Oddish, + .shinyPalette = gMonShinyPalette_Oddish, + .iconSprite = gMonIcon_Oddish, + .iconPalIndex = 4, + FOOTPRINT(Oddish) + .levelUpLearnset = sOddishLevelUpLearnset, + .teachableLearnset = sOddishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_GLOOM}), }, @@ -3342,15 +4679,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 120, - .expYield = 138, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 138 : 132, .evYield_SpAttack = 2, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_STENCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gloom"), @@ -3368,19 +4706,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gloom, 56, 48), - FRONT_PIC_FEMALE(Gloom, 56, 48), + .frontPic = gMonFrontPic_Gloom, + .frontPicFemale = gMonFrontPic_GloomF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Gloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gloom, 64, 48), - BACK_PIC_FEMALE(Gloom, 64, 48), + .backPic = gMonBackPic_Gloom, + .backPicFemale = gMonBackPic_GloomF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Gloom), - ICON(Gloom, 0), - .footprint = gMonFootprint_Gloom, - LEARNSETS(Gloom), + .palette = gMonPalette_Gloom, + .shinyPalette = gMonShinyPalette_Gloom, + .iconSprite = gMonIcon_Gloom, + .iconPalIndex = 0, + FOOTPRINT(Gloom) + .levelUpLearnset = sGloomLevelUpLearnset, + .teachableLearnset = sGloomTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}), }, @@ -3393,15 +4738,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, .baseSpDefense = 90, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Vileplume"), @@ -3419,19 +4773,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vileplume, 56, 56), - FRONT_PIC_FEMALE(Vileplume, 56, 56), + .frontPic = gMonFrontPic_Vileplume, + .frontPicFemale = gMonFrontPic_VileplumeF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Vileplume, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Vileplume, 64, 56), - BACK_PIC_FEMALE(Vileplume, 64, 56), + .backPic = gMonBackPic_Vileplume, + .backPicFemale = gMonBackPic_VileplumeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Vileplume), - ICON(Vileplume, 0), - .footprint = gMonFootprint_Vileplume, - LEARNSETS(Vileplume), + .palette = gMonPalette_Vileplume, + .shinyPalette = gMonShinyPalette_Vileplume, + .iconSprite = gMonIcon_Vileplume, + .iconPalIndex = 0, + FOOTPRINT(Vileplume) + .levelUpLearnset = sVileplumeLevelUpLearnset, + .teachableLearnset = sVileplumeTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -3443,15 +4804,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_SpDefense = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellossom"), @@ -3469,17 +4839,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellossom, 32, 40), + .frontPic = gMonFrontPic_Bellossom, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bellossom, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Bellossom, 48, 48), + .backPic = gMonBackPic_Bellossom, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Bellossom), - ICON(Bellossom, 1), - .footprint = gMonFootprint_Bellossom, - LEARNSETS(Bellossom), + .palette = gMonPalette_Bellossom, + .shinyPalette = gMonShinyPalette_Bellossom, + .iconSprite = gMonIcon_Bellossom, + .iconPalIndex = 1, + FOOTPRINT(Bellossom) + .levelUpLearnset = sBellossomLevelUpLearnset, + .teachableLearnset = sBellossomTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ODDISH @@ -3493,9 +4868,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 25, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 190, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 70, .evYield_Attack = 1, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -3503,7 +4878,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Paras"), @@ -3521,18 +4896,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Paras, 48, 40), + .frontPic = gMonFrontPic_Paras, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Paras, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, - BACK_PIC(Paras, 64, 32), + .backPic = gMonBackPic_Paras, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Paras), - ICON(Paras, 0), - .footprint = gMonFootprint_Paras, - LEARNSETS(Paras), + .palette = gMonPalette_Paras, + .shinyPalette = gMonShinyPalette_Paras, + .iconSprite = gMonIcon_Paras, + .iconPalIndex = 0, + FOOTPRINT(Paras) + .levelUpLearnset = sParasLevelUpLearnset, + .teachableLearnset = sParasTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_PARASECT}), }, @@ -3544,9 +4924,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 75, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 128, .evYield_Attack = 2, .evYield_Defense = 1, .itemCommon = ITEM_TINY_MUSHROOM, @@ -3555,7 +4935,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Parasect"), @@ -3573,18 +4953,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Parasect, 56, 56), + .frontPic = gMonFrontPic_Parasect, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Parasect, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 45, - BACK_PIC(Parasect, 64, 40), + .backPic = gMonBackPic_Parasect, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Parasect), - ICON(Parasect, 0), - .footprint = gMonFootprint_Parasect, - LEARNSETS(Parasect), + .palette = gMonPalette_Parasect, + .shinyPalette = gMonShinyPalette_Parasect, + .iconSprite = gMonIcon_Parasect, + .iconPalIndex = 0, + FOOTPRINT(Parasect) + .levelUpLearnset = sParasectLevelUpLearnset, + .teachableLearnset = sParasectTeachableLearnset, }, #endif //P_FAMILY_PARAS @@ -3597,15 +4982,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 75, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_TINTED_LENS, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Venonat"), @@ -3623,18 +5008,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = -1, - FRONT_PIC(Venonat, 40, 56), + .frontPic = gMonFrontPic_Venonat, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Venonat, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .frontAnimDelay = 20, - BACK_PIC(Venonat, 64, 56), + .backPic = gMonBackPic_Venonat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Venonat), - ICON(Venonat, 2), - .footprint = gMonFootprint_Venonat, - LEARNSETS(Venonat), + .palette = gMonPalette_Venonat, + .shinyPalette = gMonShinyPalette_Venonat, + .iconSprite = gMonIcon_Venonat, + .iconPalIndex = 2, + FOOTPRINT(Venonat) + .levelUpLearnset = sVenonatLevelUpLearnset, + .teachableLearnset = sVenonatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_VENOMOTH}), }, @@ -3646,16 +5036,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 90, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 138, .evYield_Speed = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_TINTED_LENS, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Venomoth"), @@ -3673,240 +5064,289 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 1, - FRONT_PIC(Venomoth, 64, 48), + .frontPic = gMonFrontPic_Venomoth, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Venomoth, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 16, - BACK_PIC(Venomoth, 64, 56), + .backPic = gMonBackPic_Venomoth, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Venomoth), - ICON(Venomoth, 2), - .footprint = gMonFootprint_Venomoth, - LEARNSETS(Venomoth), + .palette = gMonPalette_Venomoth, + .shinyPalette = gMonShinyPalette_Venomoth, + .iconSprite = gMonIcon_Venomoth, + .iconPalIndex = 2, + FOOTPRINT(Venomoth) + .levelUpLearnset = sVenomothLevelUpLearnset, + .teachableLearnset = sVenomothTeachableLearnset, }, #endif //P_FAMILY_VENONAT #if P_FAMILY_DIGLETT -#define DIGLETT_FAMILY_MISC_INFO \ - .itemRare = ITEM_SOFT_SAND, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN -#define DIGLETT_MISC_INFO \ - .catchRate = 255, \ - .expYield = 53, \ - .evYield_Speed = 1, \ - .speciesName = _("Diglett"), \ - .cryId = CRY_DIGLETT, \ - .natDexNum = NATIONAL_DEX_DIGLETT, \ - .categoryName = _("Mole"), \ - .height = 2, \ - .pokemonScale = 833, \ - .pokemonOffset = 25, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Diglett, \ - .formSpeciesIdTable = sDiglettFormSpeciesIdTable, \ - DIGLETT_FAMILY_MISC_INFO - -#define DUGTRIO_MISC_INFO \ - .catchRate = 50, \ - .expYield = 149, \ - .evYield_Speed = 2, \ - .speciesName = _("Dugtrio"), \ - .cryId = CRY_DUGTRIO, \ - .natDexNum = NATIONAL_DEX_DUGTRIO, \ - .categoryName = _("Mole"), \ - .height = 7, \ - .pokemonScale = 406, \ - .pokemonOffset = 18, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Dugtrio, \ - .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, \ - DIGLETT_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define DUGTRIO_EXP_YIELD 149 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DUGTRIO_EXP_YIELD 142 +#else + #define DUGTRIO_EXP_YIELD 153 +#endif #define DUGTRIO_ATTACK (P_UPDATED_STATS >= GEN_7 ? 100 : 80) [SPECIES_DIGLETT] = { - DIGLETT_MISC_INFO, .baseHP = 10, .baseAttack = 55, .baseDefense = 25, .baseSpeed = 95, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 81, + .evYield_Speed = 1, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Diglett"), + .cryId = CRY_DIGLETT, + .natDexNum = NATIONAL_DEX_DIGLETT, + .categoryName = _("Mole"), + .height = 2, .weight = 8, .description = COMPOUND_STRING( "Diglett are raised in most farms.\n" "The reason is simple--wherever they\n" "burrow, the soil is left perfectly tilled\n" "for growing delicious crops."), - FRONT_PIC(Diglett, 32, 32), + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Diglett, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Diglett, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 25, - BACK_PIC(Diglett, 40, 40), + .backPic = gMonBackPic_Diglett, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Diglett), - ICON(Diglett, 2), - LEARNSETS(Diglett), + .palette = gMonPalette_Diglett, + .shinyPalette = gMonShinyPalette_Diglett, + .iconSprite = gMonIcon_Diglett, + .iconPalIndex = 2, + FOOTPRINT(Diglett) + .levelUpLearnset = sDiglettLevelUpLearnset, + .teachableLearnset = sDiglettTeachableLearnset, + .formSpeciesIdTable = sDiglettFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO}), }, [SPECIES_DUGTRIO] = { - DUGTRIO_MISC_INFO, .baseHP = 35, .baseAttack = DUGTRIO_ATTACK, .baseDefense = 50, .baseSpeed = 120, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 50, + .expYield = DUGTRIO_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Dugtrio"), + .cryId = CRY_DUGTRIO, + .natDexNum = NATIONAL_DEX_DUGTRIO, + .categoryName = _("Mole"), + .height = 7, .weight = 333, .description = COMPOUND_STRING( "Because the triplets originally split from\n" "one body, they think exactly alike.\n" "They work cooperatively to burrow\n" "endlessly through the ground."), - FRONT_PIC(Dugtrio, 48, 48), + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Dugtrio, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Dugtrio, .frontAnimId = ANIM_H_SHAKE_SLOW, .frontAnimDelay = 35, - BACK_PIC(Dugtrio, 48, 32), + .backPic = gMonBackPic_Dugtrio, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dugtrio), - ICON(Dugtrio, 2), - LEARNSETS(Dugtrio), + .palette = gMonPalette_Dugtrio, + .shinyPalette = gMonShinyPalette_Dugtrio, + .iconSprite = gMonIcon_Dugtrio, + .iconPalIndex = 2, + FOOTPRINT(Dugtrio) + .levelUpLearnset = sDugtrioLevelUpLearnset, + .teachableLearnset = sDugtrioTeachableLearnset, + .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_DIGLETT_ALOLAN] = { - DIGLETT_MISC_INFO, .baseHP = 10, .baseAttack = 55, .baseDefense = 30, .baseSpeed = 90, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 81, + .evYield_Speed = 1, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Diglett"), + .cryId = CRY_DIGLETT, + .natDexNum = NATIONAL_DEX_DIGLETT, + .categoryName = _("Mole"), + .height = 2, .weight = 10, .description = COMPOUND_STRING( "The metal-rich geology of its habitat\n" "caused it to develop steel whiskers on its\n" "head that change shape depending on its\n" "mood and when communicating with others."), - FRONT_PIC(DiglettAlolan, 32, 40), + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DiglettAlolan, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 19, .frontAnimFrames = sAnims_DiglettAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DiglettAlolan, 40, 48), + .backPic = gMonBackPic_DiglettAlolan, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DiglettAlolan), - ICON(DiglettAlolan, 2), - LEARNSETS(DiglettAlolan), + .palette = gMonPalette_DiglettAlolan, + .shinyPalette = gMonShinyPalette_DiglettAlolan, + .iconSprite = gMonIcon_DiglettAlolan, + .iconPalIndex = 2, + FOOTPRINT(Diglett) .isAlolanForm = TRUE, + .levelUpLearnset = sDiglettAlolanLevelUpLearnset, + .teachableLearnset = sDiglettAlolanTeachableLearnset, + .formSpeciesIdTable = sDiglettFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}), }, [SPECIES_DUGTRIO_ALOLAN] = { - DUGTRIO_MISC_INFO, .baseHP = 35, .baseAttack = DUGTRIO_ATTACK, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 50, + .expYield = DUGTRIO_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, + .speciesName = _("Dugtrio"), + .cryId = CRY_DUGTRIO, + .natDexNum = NATIONAL_DEX_DUGTRIO, + .categoryName = _("Mole"), + .height = 7, .weight = 666, .description = COMPOUND_STRING( "Their beautiful, metallic whiskers create\n" "a sort of protective helmet on\n" "heir heads, and they also function\n" "as highly precise sensors."), - FRONT_PIC(DugtrioAlolan, 48, 48), + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DugtrioAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_DugtrioAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DugtrioAlolan, 64, 32), + .backPic = gMonBackPic_DugtrioAlolan, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DugtrioAlolan), - ICON(DugtrioAlolan, 2), - LEARNSETS(DugtrioAlolan), + .palette = gMonPalette_DugtrioAlolan, + .shinyPalette = gMonShinyPalette_DugtrioAlolan, + .iconSprite = gMonIcon_DugtrioAlolan, + .iconPalIndex = 2, + FOOTPRINT(Dugtrio) .isAlolanForm = TRUE, + .levelUpLearnset = sDugtrioAlolanLevelUpLearnset, + .teachableLearnset = sDugtrioAlolanTeachableLearnset, + .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT #if P_FAMILY_MEOWTH -#define MEOWTH_MISC_INFO \ - .catchRate = 255, \ - .expYield = 58, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Meowth"), \ - .cryId = CRY_MEOWTH, \ - .natDexNum = NATIONAL_DEX_MEOWTH, \ - .categoryName = _("Scratch Cat"), \ - .footprint = gMonFootprint_Meowth, \ - .formSpeciesIdTable = sMeowthFormSpeciesIdTable - -#define PERSIAN_MISC_INFO \ - .catchRate = 90, \ - .expYield = 154, \ - .evYield_Speed = 2, \ - .itemRare = ITEM_QUICK_CLAW, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Persian"), \ - .cryId = CRY_PERSIAN, \ - .natDexNum = NATIONAL_DEX_PERSIAN, \ - .categoryName = _("Classy Cat"), \ - .footprint = gMonFootprint_Persian, \ - .formSpeciesIdTable = sPersianFormSpeciesIdTable - [SPECIES_MEOWTH] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_NORMAL, TYPE_NORMAL }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 42, .description = COMPOUND_STRING( @@ -3918,33 +5358,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meowth, 48, 48), + .frontPic = gMonFrontPic_Meowth, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Meowth, .frontAnimId = ANIM_V_JUMPS_SMALL, .frontAnimDelay = 40, - BACK_PIC(Meowth, 56, 56), + .backPic = gMonBackPic_Meowth, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Meowth), - ICON(Meowth, 1), - LEARNSETS(Meowth), + .palette = gMonPalette_Meowth, + .shinyPalette = gMonShinyPalette_Meowth, + .iconSprite = gMonIcon_Meowth, + .iconPalIndex = 1, + FOOTPRINT(Meowth) + .levelUpLearnset = sMeowthLevelUpLearnset, + .teachableLearnset = sMeowthTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .formChangeTable = sMeowthFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERSIAN}), }, [SPECIES_PERSIAN] = { - PERSIAN_MISC_INFO, .baseHP = 65, .baseAttack = 70, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 148, + .evYield_Speed = 2, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Persian"), + .cryId = CRY_PERSIAN, + .natDexNum = NATIONAL_DEX_PERSIAN, + .categoryName = _("Classy Cat"), .height = 10, .weight = 320, .description = COMPOUND_STRING( @@ -3956,34 +5415,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Persian, 64, 56), + .frontPic = gMonFrontPic_Persian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Persian, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Persian, 64, 56), + .backPic = gMonBackPic_Persian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Persian), - ICON(Persian, 1), - LEARNSETS(Persian), + .palette = gMonPalette_Persian, + .shinyPalette = gMonShinyPalette_Persian, + .iconSprite = gMonIcon_Persian, + .iconPalIndex = 1, + FOOTPRINT(Persian) + .levelUpLearnset = sPersianLevelUpLearnset, + .teachableLearnset = sPersianTeachableLearnset, + .formSpeciesIdTable = sPersianFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_MEOWTH_ALOLAN] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 35, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_DARK, TYPE_DARK }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 42, .description = COMPOUND_STRING( @@ -3995,32 +5471,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthAlolan, 48, 48), + .frontPic = gMonFrontPic_MeowthAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_MeowthAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthAlolan, 64, 56), + .backPic = gMonBackPic_MeowthAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthAlolan), - ICON(MeowthAlolan, 2), - LEARNSETS(MeowthAlolan), + .palette = gMonPalette_MeowthAlolan, + .shinyPalette = gMonShinyPalette_MeowthAlolan, + .iconSprite = gMonIcon_MeowthAlolan, + .iconPalIndex = 2, + FOOTPRINT(Meowth) .isAlolanForm = TRUE, + .levelUpLearnset = sMeowthAlolanLevelUpLearnset, + .teachableLearnset = sMeowthAlolanTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLAN}), }, [SPECIES_PERSIAN_ALOLAN] = { - PERSIAN_MISC_INFO, .baseHP = 65, .baseAttack = 60, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 75, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 148, + .evYield_Speed = 2, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FUR_COAT, ABILITY_TECHNICIAN, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Persian"), + .cryId = CRY_PERSIAN, + .natDexNum = NATIONAL_DEX_PERSIAN, + .categoryName = _("Classy Cat"), .height = 11, .weight = 330, .description = COMPOUND_STRING( @@ -4032,34 +5527,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PersianAlolan, 56, 56), + .frontPic = gMonFrontPic_PersianAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_PersianAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PersianAlolan, 64, 56), + .backPic = gMonBackPic_PersianAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PersianAlolan), - ICON(PersianAlolan, 2), - LEARNSETS(PersianAlolan), + .palette = gMonPalette_PersianAlolan, + .shinyPalette = gMonShinyPalette_PersianAlolan, + .iconSprite = gMonIcon_PersianAlolan, + .iconPalIndex = 2, + FOOTPRINT(Persian) .isAlolanForm = TRUE, + .levelUpLearnset = sPersianAlolanLevelUpLearnset, + .teachableLearnset = sPersianAlolanTeachableLearnset, + .formSpeciesIdTable = sPersianFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS [SPECIES_MEOWTH_GALARIAN] = { - MEOWTH_MISC_INFO, .baseHP = 50, .baseAttack = 65, .baseDefense = 55, .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Attack = 1, - .types = { TYPE_STEEL, TYPE_STEEL }, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TOUGH_CLAWS, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 75, .description = COMPOUND_STRING( @@ -4071,17 +5583,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthGalarian, 48, 48), + .frontPic = gMonFrontPic_MeowthGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MeowthGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthGalarian, 64, 56), + .backPic = gMonBackPic_MeowthGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthGalarian), - ICON(MeowthGalarian, 0), - LEARNSETS(MeowthGalarian), + .palette = gMonPalette_MeowthGalarian, + .shinyPalette = gMonShinyPalette_MeowthGalarian, + .iconSprite = gMonIcon_MeowthGalarian, + .iconPalIndex = 0, + FOOTPRINT(Meowth) .isGalarianForm = TRUE, + .levelUpLearnset = sMeowthGalarianLevelUpLearnset, + .teachableLearnset = sMeowthGalarianTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERRSERKER}), }, @@ -4093,7 +5612,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 90, .expYield = 154, .evYield_Attack = 2, @@ -4101,7 +5620,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_TOUGH_CLAWS, ABILITY_STEELY_SPIRIT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Perrserker"), @@ -4118,35 +5637,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Perrserker, 48, 64), + .frontPic = gMonFrontPic_Perrserker, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Perrserker, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Perrserker, 64, 56), + .backPic = gMonBackPic_Perrserker, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Perrserker), - ICON(Perrserker, 2), - .footprint = gMonFootprint_Perrserker, - LEARNSETS(Perrserker), + .palette = gMonPalette_Perrserker, + .shinyPalette = gMonShinyPalette_Perrserker, + .iconSprite = gMonIcon_Perrserker, + .iconPalIndex = 2, + FOOTPRINT(Perrserker) + .levelUpLearnset = sPerrserkerLevelUpLearnset, + .teachableLearnset = sPerrserkerTeachableLearnset, }, #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS [SPECIES_MEOWTH_GIGANTAMAX] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_NORMAL, TYPE_NORMAL }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 330, .weight = 0, .description = COMPOUND_STRING( @@ -4158,17 +5692,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthGigantamax, 64, 64), + .frontPic = gMonFrontPic_MeowthGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_MeowthGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthGigantamax, 64, 64), + .backPic = gMonBackPic_MeowthGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthGigantamax), - ICON(MeowthGigantamax, 1), - LEARNSETS(Meowth), + .palette = gMonPalette_MeowthGigantamax, + .shinyPalette = gMonShinyPalette_MeowthGigantamax, + .iconSprite = gMonIcon_MeowthGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Meowth) .isGigantamax = TRUE, + .levelUpLearnset = sMeowthLevelUpLearnset, + .teachableLearnset = sMeowthTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .formChangeTable = sMeowthFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS @@ -4183,15 +5724,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 80, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Psyduck"), @@ -4209,17 +5750,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Psyduck, 40, 48), + .frontPic = gMonFrontPic_Psyduck, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Psyduck, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Psyduck, 48, 48), + .backPic = gMonBackPic_Psyduck, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Psyduck), - ICON(Psyduck, 1), - .footprint = gMonFootprint_Psyduck, - LEARNSETS(Psyduck), + .palette = gMonPalette_Psyduck, + .shinyPalette = gMonShinyPalette_Psyduck, + .iconSprite = gMonIcon_Psyduck, + .iconPalIndex = 1, + FOOTPRINT(Psyduck) + .levelUpLearnset = sPsyduckLevelUpLearnset, + .teachableLearnset = sPsyduckTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_GOLDUCK}), }, @@ -4231,15 +5777,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 174, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Golduck"), @@ -4257,17 +5803,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 273, .trainerOffset = 1, - FRONT_PIC(Golduck, 64, 64), + .frontPic = gMonFrontPic_Golduck, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Golduck, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Golduck, 64, 64), + .backPic = gMonBackPic_Golduck, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Golduck), - ICON(Golduck, 0), - .footprint = gMonFootprint_Golduck, - LEARNSETS(Golduck), + .palette = gMonPalette_Golduck, + .shinyPalette = gMonShinyPalette_Golduck, + .iconSprite = gMonIcon_Golduck, + .iconPalIndex = 0, + FOOTPRINT(Golduck) + .levelUpLearnset = sGolduckLevelUpLearnset, + .teachableLearnset = sGolduckTeachableLearnset, }, #endif //P_FAMILY_PSYDUCK @@ -4280,15 +5831,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 74, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mankey"), @@ -4306,18 +5857,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mankey, 56, 48), + .frontPic = gMonFrontPic_Mankey, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Mankey, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Mankey, 64, 48), + .backPic = gMonBackPic_Mankey, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Mankey), - ICON(Mankey, 1), - .footprint = gMonFootprint_Mankey, - LEARNSETS(Mankey), + .palette = gMonPalette_Mankey, + .shinyPalette = gMonShinyPalette_Mankey, + .iconSprite = gMonIcon_Mankey, + .iconPalIndex = 1, + FOOTPRINT(Mankey) + .levelUpLearnset = sMankeyLevelUpLearnset, + .teachableLearnset = sMankeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PRIMEAPE}), }, @@ -4329,15 +5885,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 149, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Primeape"), @@ -4355,18 +5911,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Primeape, 64, 56), + .frontPic = gMonFrontPic_Primeape, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Primeape, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Primeape, 64, 48), + .backPic = gMonBackPic_Primeape, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Primeape), - ICON(Primeape, 2), - .footprint = gMonFootprint_Primeape, - LEARNSETS(Primeape), - .evolutions = EVOLUTION({EVO_MOVE, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}), + .palette = gMonPalette_Primeape, + .shinyPalette = gMonShinyPalette_Primeape, + .iconSprite = gMonIcon_Primeape, + .iconPalIndex = 2, + FOOTPRINT(Primeape) + .levelUpLearnset = sPrimeapeLevelUpLearnset, + .teachableLearnset = sPrimeapeTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_MOVE_TWENTY_TIMES, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}), }, #if P_GEN_9_CROSS_EVOS @@ -4378,7 +5939,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_GHOST), .catchRate = 45, .expYield = 268, .evYield_Attack = 3, @@ -4386,7 +5947,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_INNER_FOCUS, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Annihilape"), @@ -4404,64 +5965,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Annihilape, 64, 64), + .frontPic = gMonFrontPic_Annihilape, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Annihilape, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Annihilape, 64, 64), + .backPic = gMonBackPic_Annihilape, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Annihilape), - ICON(Annihilape, 0), - //.footprint = gMonFootprint_Annihilape, - LEARNSETS(Annihilape), + .palette = gMonPalette_Annihilape, + .shinyPalette = gMonShinyPalette_Annihilape, + .iconSprite = gMonIcon_Annihilape, + .iconPalIndex = 0, + //FOOTPRINT(Annihilape) + .levelUpLearnset = sAnnihilapeLevelUpLearnset, + .teachableLearnset = sAnnihilapeTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_MANKEY #if P_FAMILY_GROWLITHE -#define GROWLITHE_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN - -#define GROWLITHE_MISC_INFO \ - .catchRate = 190, \ - .expYield = 70, \ - .evYield_Attack = 1, \ - .speciesName = _("Growlithe"), \ - .cryId = CRY_GROWLITHE, \ - .natDexNum = NATIONAL_DEX_GROWLITHE, \ - .footprint = gMonFootprint_Growlithe, \ - .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, \ - GROWLITHE_FAMILY_MISC_INFO - -#define ARCANINE_MISC_INFO \ - .catchRate = 75, \ - .expYield = 194, \ - .evYield_Attack = 2, \ - .speciesName = _("Arcanine"), \ - .cryId = CRY_ARCANINE, \ - .natDexNum = NATIONAL_DEX_ARCANINE, \ - .categoryName = _("Legendary"), \ - .footprint = gMonFootprint_Arcanine, \ - .formSpeciesIdTable = sArcanineFormSpeciesIdTable, \ - GROWLITHE_FAMILY_MISC_INFO - [SPECIES_GROWLITHE] = { - GROWLITHE_MISC_INFO, .baseHP = 55, .baseAttack = 70, .baseDefense = 45, .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 91, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Growlithe"), + .cryId = CRY_GROWLITHE, + .natDexNum = NATIONAL_DEX_GROWLITHE, .categoryName = _("Puppy"), .height = 7, .weight = 190, @@ -4474,31 +6020,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Growlithe, 48, 48), + .frontPic = gMonFrontPic_Growlithe, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Growlithe, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 30, - BACK_PIC(Growlithe, 48, 56), + .backPic = gMonBackPic_Growlithe, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Growlithe), - ICON(Growlithe, 3), - LEARNSETS(Growlithe), + .palette = gMonPalette_Growlithe, + .shinyPalette = gMonShinyPalette_Growlithe, + .iconSprite = gMonIcon_Growlithe, + .iconPalIndex = 3, + FOOTPRINT(Growlithe) + .levelUpLearnset = sGrowlitheLevelUpLearnset, + .teachableLearnset = sGrowlitheTeachableLearnset, + .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}), }, [SPECIES_ARCANINE] = { - ARCANINE_MISC_INFO, .baseHP = 90, .baseAttack = 110, .baseDefense = 80, .baseSpeed = 95, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 194 : 213, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Arcanine"), + .cryId = CRY_ARCANINE, + .natDexNum = NATIONAL_DEX_ARCANINE, + .categoryName = _("Legendary"), .height = 19, .weight = 1550, .description = COMPOUND_STRING( @@ -4510,31 +6075,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 4, - FRONT_PIC(Arcanine, 64, 64), + .frontPic = gMonFrontPic_Arcanine, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Arcanine, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 8, - BACK_PIC(Arcanine, 64, 56), + .backPic = gMonBackPic_Arcanine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Arcanine), - ICON(Arcanine, 3), - LEARNSETS(Arcanine), + .palette = gMonPalette_Arcanine, + .shinyPalette = gMonShinyPalette_Arcanine, + .iconSprite = gMonIcon_Arcanine, + .iconPalIndex = 3, + FOOTPRINT(Arcanine) + .levelUpLearnset = sArcanineLevelUpLearnset, + .teachableLearnset = sArcanineTeachableLearnset, + .formSpeciesIdTable = sArcanineFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_GROWLITHE_HISUIAN] = { - GROWLITHE_MISC_INFO, .baseHP = 60, .baseAttack = 75, .baseDefense = 45, .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 91, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Growlithe"), + .cryId = CRY_GROWLITHE, + .natDexNum = NATIONAL_DEX_GROWLITHE, .categoryName = _("Scout"), .height = 8, .weight = 227, @@ -4547,31 +6130,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GrowlitheHisuian, 48, 48), + .frontPic = gMonFrontPic_GrowlitheHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_GrowlitheHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrowlitheHisuian, 56, 56), + .backPic = gMonBackPic_GrowlitheHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrowlitheHisuian), - ICON(GrowlitheHisuian, 0), - LEARNSETS(GrowlitheHisuian), + .palette = gMonPalette_GrowlitheHisuian, + .shinyPalette = gMonShinyPalette_GrowlitheHisuian, + .iconSprite = gMonIcon_GrowlitheHisuian, + .iconPalIndex = 0, + FOOTPRINT(Growlithe) .isHisuianForm = TRUE, + .levelUpLearnset = sGrowlitheHisuianLevelUpLearnset, + .teachableLearnset = sGrowlitheHisuianTeachableLearnset, + .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUIAN}), }, [SPECIES_ARCANINE_HISUIAN] = { - ARCANINE_MISC_INFO, .baseHP = 95, .baseAttack = 115, .baseDefense = 80, .baseSpeed = 90, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 194 : 213, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Arcanine"), + .cryId = CRY_ARCANINE, + .natDexNum = NATIONAL_DEX_ARCANINE, + .categoryName = _("Legendary"), .height = 20, .weight = 1680, .description = COMPOUND_STRING( @@ -4583,17 +6185,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 4, - FRONT_PIC(ArcanineHisuian, 64, 64), + .frontPic = gMonFrontPic_ArcanineHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ArcanineHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ArcanineHisuian, 64, 64), + .backPic = gMonBackPic_ArcanineHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ArcanineHisuian), - ICON(ArcanineHisuian, 0), - LEARNSETS(ArcanineHisuian), + .palette = gMonPalette_ArcanineHisuian, + .shinyPalette = gMonShinyPalette_ArcanineHisuian, + .iconSprite = gMonIcon_ArcanineHisuian, + .iconPalIndex = 0, + FOOTPRINT(Arcanine) .isHisuianForm = TRUE, + .levelUpLearnset = sArcanineHisuianLevelUpLearnset, + .teachableLearnset = sArcanineHisuianTeachableLearnset, + .formSpeciesIdTable = sArcanineFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE @@ -4607,15 +6216,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 77, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4634,17 +6243,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwag, 64, 40), + .frontPic = gMonFrontPic_Poliwag, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Poliwag, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Poliwag, 48, 32), + .backPic = gMonBackPic_Poliwag, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Poliwag), - ICON(Poliwag, 0), - .footprint = gMonFootprint_Poliwag, - LEARNSETS(Poliwag), + .palette = gMonPalette_Poliwag, + .shinyPalette = gMonShinyPalette_Poliwag, + .iconSprite = gMonIcon_Poliwag, + .iconPalIndex = 0, + FOOTPRINT(Poliwag) + .levelUpLearnset = sPoliwagLevelUpLearnset, + .teachableLearnset = sPoliwagTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_POLIWHIRL}), }, @@ -4656,16 +6270,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 120, - .expYield = 135, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 135 : 131, .evYield_Speed = 2, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4684,18 +6298,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwhirl, 64, 48), + .frontPic = gMonFrontPic_Poliwhirl, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Poliwhirl, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 5, - BACK_PIC(Poliwhirl, 64, 40), + .backPic = gMonBackPic_Poliwhirl, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Poliwhirl), - ICON(Poliwhirl, 0), - .footprint = gMonFootprint_Poliwhirl, - LEARNSETS(Poliwhirl), + .palette = gMonPalette_Poliwhirl, + .shinyPalette = gMonShinyPalette_Poliwhirl, + .iconSprite = gMonIcon_Poliwhirl, + .iconPalIndex = 0, + FOOTPRINT(Poliwhirl) + .levelUpLearnset = sPoliwhirlLevelUpLearnset, + .teachableLearnset = sPoliwhirlTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}, {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}), @@ -4709,16 +6328,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 225, + #else + .expYield = 185, + #endif .evYield_Defense = 3, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4737,17 +6364,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwrath, 64, 56), + .frontPic = gMonFrontPic_Poliwrath, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Poliwrath, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Poliwrath, 64, 56), + .backPic = gMonBackPic_Poliwrath, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Poliwrath), - ICON(Poliwrath, 0), - .footprint = gMonFootprint_Poliwrath, - LEARNSETS(Poliwrath), + .palette = gMonPalette_Poliwrath, + .shinyPalette = gMonShinyPalette_Poliwrath, + .iconSprite = gMonIcon_Poliwrath, + .iconPalIndex = 0, + FOOTPRINT(Poliwrath) + .levelUpLearnset = sPoliwrathLevelUpLearnset, + .teachableLearnset = sPoliwrathTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -4759,16 +6391,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 225, + #else + .expYield = 185, + #endif .evYield_SpDefense = 3, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_DRIZZLE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -4787,20 +6425,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Politoed, 48, 56), - FRONT_PIC_FEMALE(Politoed, 48, 56), + .frontPic = gMonFrontPic_Politoed, + .frontPicFemale = gMonFrontPic_PolitoedF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Politoed, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 40, - BACK_PIC(Politoed, 56, 56), - BACK_PIC_FEMALE(Politoed, 56, 56), + .backPic = gMonBackPic_Politoed, + .backPicFemale = gMonBackPic_PolitoedF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Politoed), - ICON(Politoed, 1), - .footprint = gMonFootprint_Politoed, - LEARNSETS(Politoed), + .palette = gMonPalette_Politoed, + .shinyPalette = gMonShinyPalette_Politoed, + .iconSprite = gMonIcon_Politoed, + .iconPalIndex = 1, + FOOTPRINT(Politoed) + .levelUpLearnset = sPolitoedLevelUpLearnset, + .teachableLearnset = sPolitoedTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_POLIWAG @@ -4814,16 +6459,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 105, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 62, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 75, + #else + .expYield = 73, + #endif .evYield_SpAttack = 1, .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Abra"), @@ -4841,17 +6492,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Abra, 56, 48), + .frontPic = gMonFrontPic_Abra, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Abra, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Abra, 56, 48), + .backPic = gMonBackPic_Abra, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Abra), - ICON(Abra, 2), - .footprint = gMonFootprint_Abra, - LEARNSETS(Abra), + .palette = gMonPalette_Abra, + .shinyPalette = gMonShinyPalette_Abra, + .iconSprite = gMonIcon_Abra, + .iconPalIndex = 2, + FOOTPRINT(Abra) + .levelUpLearnset = sAbraLevelUpLearnset, + .teachableLearnset = sAbraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_KADABRA}), }, @@ -4863,16 +6519,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 120, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, - .expYield = 140, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 140 : 145, .evYield_SpAttack = 2, .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -4891,55 +6547,64 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kadabra, 64, 56), - FRONT_PIC_FEMALE(Kadabra, 64, 56), + .frontPic = gMonFrontPic_Kadabra, + .frontPicFemale = gMonFrontPic_KadabraF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Kadabra, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Kadabra, 64, 48), - BACK_PIC_FEMALE(Kadabra, 64, 48), + .backPic = gMonBackPic_Kadabra, + .backPicFemale = gMonBackPic_KadabraF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Kadabra), - ICON(Kadabra, 2), - .footprint = gMonFootprint_Kadabra, - LEARNSETS(Kadabra), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_ALAKAZAM}), + .palette = gMonPalette_Kadabra, + .shinyPalette = gMonShinyPalette_Kadabra, + .iconSprite = gMonIcon_Kadabra, + .iconPalIndex = 2, + FOOTPRINT(Kadabra) + .levelUpLearnset = sKadabraLevelUpLearnset, + .teachableLearnset = sKadabraTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_ALAKAZAM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_ALAKAZAM}), }, #define ALAKAZAM_SP_DEF (P_UPDATED_STATS >= GEN_6 ? 95 : 85) -#define ALAKAZAM_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 50, \ - .evYield_SpAttack = 3, \ - .itemRare = ITEM_TWISTED_SPOON, \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Alakazam"), \ - .natDexNum = NATIONAL_DEX_ALAKAZAM, \ - .categoryName = _("Psi"), \ - .footprint = gMonFootprint_Alakazam, \ - LEARNSETS(Alakazam), \ - .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, \ - .formChangeTable = sAlakazamFormChangeTable - [SPECIES_ALAKAZAM] = { - ALAKAZAM_MISC_INFO, .baseHP = 55, .baseAttack = 50, .baseDefense = 45, .baseSpeed = 120, .baseSpAttack = 135, .baseSpDefense = ALAKAZAM_SP_DEF, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 221, + #else + .expYield = 186, + #endif + .evYield_SpAttack = 3, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Alakazam"), .cryId = CRY_ALAKAZAM, + .natDexNum = NATIONAL_DEX_ALAKAZAM, + .categoryName = _("Psi"), .height = 15, .weight = 480, .description = COMPOUND_STRING( @@ -4951,32 +6616,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Alakazam, 64, 64), - FRONT_PIC_FEMALE(Alakazam, 64, 64), + .frontPic = gMonFrontPic_Alakazam, + .frontPicFemale = gMonFrontPic_AlakazamF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Alakazam, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Alakazam, 64, 56), - BACK_PIC_FEMALE(Alakazam, 64, 56), + .backPic = gMonBackPic_Alakazam, + .backPicFemale = gMonBackPic_AlakazamF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Alakazam), - ICON(Alakazam, 2), + .palette = gMonPalette_Alakazam, + .shinyPalette = gMonShinyPalette_Alakazam, + .iconSprite = gMonIcon_Alakazam, + .iconPalIndex = 2, + FOOTPRINT(Alakazam) + .levelUpLearnset = sAlakazamLevelUpLearnset, + .teachableLearnset = sAlakazamTeachableLearnset, + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, + .formChangeTable = sAlakazamFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ALAKAZAM_MEGA] = { - ALAKAZAM_MISC_INFO, .baseHP = 55, .baseAttack = 50, .baseDefense = 65, .baseSpeed = 150, .baseSpAttack = 175, .baseSpDefense = ALAKAZAM_SP_DEF + 10, - .expYield = 270, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TRACE, ABILITY_TRACE, ABILITY_TRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Alakazam"), .cryId = CRY_ALAKAZAM_MEGA, + .natDexNum = NATIONAL_DEX_ALAKAZAM, + .categoryName = _("Psi"), .height = 12, .weight = 480, .description = COMPOUND_STRING( @@ -4987,17 +6675,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AlakazamMega, 64, 64), + .frontPic = gMonFrontPic_AlakazamMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AlakazamMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(AlakazamMega, 64, 64), + .backPic = gMonBackPic_AlakazamMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(AlakazamMega), - ICON(AlakazamMega, 2), + .palette = gMonPalette_AlakazamMega, + .shinyPalette = gMonShinyPalette_AlakazamMega, + .iconSprite = gMonIcon_AlakazamMega, + .iconPalIndex = 2, + FOOTPRINT(Alakazam) .isMegaEvolution = TRUE, + .levelUpLearnset = sAlakazamLevelUpLearnset, + .teachableLearnset = sAlakazamTeachableLearnset, + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, + .formChangeTable = sAlakazamFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ABRA @@ -5011,16 +6708,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 61, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 75, + #else + .expYield = 88, + #endif .evYield_Attack = 1, .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Machop"), @@ -5038,17 +6741,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Machop, 48, 48), + .frontPic = gMonFrontPic_Machop, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Machop, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Machop, 48, 56), + .backPic = gMonBackPic_Machop, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Machop), - ICON(Machop, 0), - .footprint = gMonFootprint_Machop, - LEARNSETS(Machop), + .palette = gMonPalette_Machop, + .shinyPalette = gMonShinyPalette_Machop, + .iconSprite = gMonIcon_Machop, + .iconPalIndex = 0, + FOOTPRINT(Machop) + .levelUpLearnset = sMachopLevelUpLearnset, + .teachableLearnset = sMachopTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MACHOKE}), }, @@ -5060,16 +6768,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 90, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 146, .evYield_Attack = 2, .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5088,51 +6796,58 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Machoke, 56, 56), + .frontPic = gMonFrontPic_Machoke, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Machoke, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Machoke, 64, 48), + .backPic = gMonBackPic_Machoke, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Machoke), - ICON(Machoke, 2), - .footprint = gMonFootprint_Machoke, - LEARNSETS(Machoke), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_MACHAMP}), + .palette = gMonPalette_Machoke, + .shinyPalette = gMonShinyPalette_Machoke, + .iconSprite = gMonIcon_Machoke, + .iconPalIndex = 2, + FOOTPRINT(Machoke) + .levelUpLearnset = sMachokeLevelUpLearnset, + .teachableLearnset = sMachokeTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_MACHAMP}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_MACHAMP}), }, -#define MACHAMP_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 130, \ - .baseDefense = 80, \ - .baseSpeed = 55, \ - .baseSpAttack = 65, \ - .baseSpDefense = 85, \ - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .expYield = 227, \ - .evYield_Attack = 3, \ - .itemRare = ITEM_FOCUS_BAND, \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Machamp"), \ - .cryId = CRY_MACHAMP, \ - .natDexNum = NATIONAL_DEX_MACHAMP, \ - .categoryName = _("Superpower"), \ - .footprint = gMonFootprint_Machamp, \ - LEARNSETS(Machamp), \ - .formSpeciesIdTable = sMachampFormSpeciesIdTable, \ - .formChangeTable = sMachampFormChangeTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define MACHAMP_EXP_YIELD 253 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define MACHAMP_EXP_YIELD 227 +#else + #define MACHAMP_EXP_YIELD 193 +#endif [SPECIES_MACHAMP] = { - MACHAMP_MISC_INFO, + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = MACHAMP_EXP_YIELD, + .evYield_Attack = 3, + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Machamp"), + .cryId = CRY_MACHAMP, + .natDexNum = NATIONAL_DEX_MACHAMP, + .categoryName = _("Superpower"), .height = 16, .weight = 1300, .description = COMPOUND_STRING( @@ -5144,21 +6859,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 269, .trainerOffset = -1, - FRONT_PIC(Machamp, 64, 64), + .frontPic = gMonFrontPic_Machamp, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Machamp, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Machamp, 64, 56), + .backPic = gMonBackPic_Machamp, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Machamp), - ICON(Machamp, 0), + .palette = gMonPalette_Machamp, + .shinyPalette = gMonShinyPalette_Machamp, + .iconSprite = gMonIcon_Machamp, + .iconPalIndex = 0, + FOOTPRINT(Machamp) + .levelUpLearnset = sMachampLevelUpLearnset, + .teachableLearnset = sMachampTeachableLearnset, + .formSpeciesIdTable = sMachampFormSpeciesIdTable, + .formChangeTable = sMachampFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_MACHAMP_GIGANTAMAX] = { - MACHAMP_MISC_INFO, + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = MACHAMP_EXP_YIELD, + .evYield_Attack = 3, + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Machamp"), + .cryId = CRY_MACHAMP, + .natDexNum = NATIONAL_DEX_MACHAMP, + .categoryName = _("Superpower"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -5170,16 +6915,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 269, .trainerOffset = -1, - FRONT_PIC(MachampGigantamax, 64, 64), + .frontPic = gMonFrontPic_MachampGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MachampGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MachampGigantamax, 64, 64), + .backPic = gMonBackPic_MachampGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MachampGigantamax), - ICON(MachampGigantamax, 0), + .palette = gMonPalette_MachampGigantamax, + .shinyPalette = gMonShinyPalette_MachampGigantamax, + .iconSprite = gMonIcon_MachampGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Machamp) .isGigantamax = TRUE, + .levelUpLearnset = sMachampLevelUpLearnset, + .teachableLearnset = sMachampTeachableLearnset, + .formSpeciesIdTable = sMachampFormSpeciesIdTable, + .formChangeTable = sMachampFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP @@ -5193,15 +6947,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 70, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 84, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellsprout"), @@ -5219,17 +6973,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellsprout, 40, 40), + .frontPic = gMonFrontPic_Bellsprout, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bellsprout, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Bellsprout, 40, 48), + .backPic = gMonBackPic_Bellsprout, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Bellsprout), - ICON(Bellsprout, 1), - .footprint = gMonFootprint_Bellsprout, - LEARNSETS(Bellsprout), + .palette = gMonPalette_Bellsprout, + .shinyPalette = gMonShinyPalette_Bellsprout, + .iconSprite = gMonIcon_Bellsprout, + .iconPalIndex = 1, + FOOTPRINT(Bellsprout) + .levelUpLearnset = sBellsproutLevelUpLearnset, + .teachableLearnset = sBellsproutTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_WEEPINBELL}), }, @@ -5241,15 +7000,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 120, - .expYield = 137, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 151, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Weepinbell"), @@ -5267,18 +7026,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weepinbell, 56, 48), + .frontPic = gMonFrontPic_Weepinbell, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Weepinbell, .frontAnimId = ANIM_SWING_CONVEX, .frontAnimDelay = 3, - BACK_PIC(Weepinbell, 64, 48), + .backPic = gMonBackPic_Weepinbell, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Weepinbell), - ICON(Weepinbell, 1), - .footprint = gMonFootprint_Weepinbell, - LEARNSETS(Weepinbell), + .palette = gMonPalette_Weepinbell, + .shinyPalette = gMonShinyPalette_Weepinbell, + .iconSprite = gMonIcon_Weepinbell, + .iconPalIndex = 1, + FOOTPRINT(Weepinbell) + .levelUpLearnset = sWeepinbellLevelUpLearnset, + .teachableLearnset = sWeepinbellTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}), }, @@ -5290,15 +7054,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 100, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 70 : 60, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 191, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Victreebel"), @@ -5316,17 +7088,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 3, - FRONT_PIC(Victreebel, 64, 56), + .frontPic = gMonFrontPic_Victreebel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Victreebel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Victreebel, 64, 56), + .backPic = gMonBackPic_Victreebel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Victreebel), - ICON(Victreebel, 1), - .footprint = gMonFootprint_Victreebel, - LEARNSETS(Victreebel), + .palette = gMonPalette_Victreebel, + .shinyPalette = gMonShinyPalette_Victreebel, + .iconSprite = gMonIcon_Victreebel, + .iconPalIndex = 1, + FOOTPRINT(Victreebel) + .levelUpLearnset = sVictreebelLevelUpLearnset, + .teachableLearnset = sVictreebelTeachableLearnset, }, #endif //P_FAMILY_BELLSPROUT @@ -5339,16 +7116,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_POISON }, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), .catchRate = 190, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 105, .evYield_SpDefense = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tentacool"), @@ -5366,17 +7143,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tentacool, 48, 56), + .frontPic = gMonFrontPic_Tentacool, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Tentacool, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tentacool, 64, 48), + .backPic = gMonBackPic_Tentacool, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tentacool), - ICON(Tentacool, 0), - .footprint = gMonFootprint_Tentacool, - LEARNSETS(Tentacool), + .palette = gMonPalette_Tentacool, + .shinyPalette = gMonShinyPalette_Tentacool, + .iconSprite = gMonIcon_Tentacool, + .iconPalIndex = 0, + FOOTPRINT(Tentacool) + .levelUpLearnset = sTentacoolLevelUpLearnset, + .teachableLearnset = sTentacoolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TENTACRUEL}), }, @@ -5388,16 +7170,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_POISON }, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), .catchRate = 60, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 205, .evYield_SpDefense = 2, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tentacruel"), @@ -5415,151 +7197,183 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 312, .trainerOffset = 1, - FRONT_PIC(Tentacruel, 64, 56), + .frontPic = gMonFrontPic_Tentacruel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Tentacruel, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Tentacruel, 64, 48), + .backPic = gMonBackPic_Tentacruel, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tentacruel), - ICON(Tentacruel, 0), - .footprint = gMonFootprint_Tentacruel, - LEARNSETS(Tentacruel), + .palette = gMonPalette_Tentacruel, + .shinyPalette = gMonShinyPalette_Tentacruel, + .iconSprite = gMonIcon_Tentacruel, + .iconPalIndex = 0, + FOOTPRINT(Tentacruel) + .levelUpLearnset = sTentacruelLevelUpLearnset, + .teachableLearnset = sTentacruelTeachableLearnset, }, #endif //P_FAMILY_TENTACOOL #if P_FAMILY_GEODUDE -#define KANTONIAN_GEODUDE_FAMILY_INFO \ - .types = { TYPE_ROCK, TYPE_GROUND }, \ - .itemRare = ITEM_EVERSTONE, \ - .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL } -#define GEODUDE_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_BROWN - -#define GEODUDE_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 80, \ - .baseDefense = 100, \ - .baseSpeed = 20, \ - .baseSpAttack = 30, \ - .baseSpDefense = 30, \ - .catchRate = 255, \ - .expYield = 60, \ - .evYield_Defense = 1, \ - .speciesName = _("Geodude"), \ - .cryId = CRY_GEODUDE, \ - .natDexNum = NATIONAL_DEX_GEODUDE, \ - .categoryName = _("Rock"), \ - .height = 4, \ - .pokemonScale = 347, \ - .pokemonOffset = 18, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Geodude, \ - .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO - -#define GRAVELER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 35, \ - .baseSpAttack = 45, \ - .baseSpDefense = 45, \ - .catchRate = 120, \ - .expYield = 137, \ - .evYield_Defense = 2, \ - .speciesName = _("Graveler"), \ - .cryId = CRY_GRAVELER, \ - .natDexNum = NATIONAL_DEX_GRAVELER, \ - .categoryName = _("Rock"), \ - .height = 10, \ - .pokemonScale = 256, \ - .pokemonOffset = 2, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Graveler, \ - .formSpeciesIdTable = sGravelerFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_5 + #define GEODUDE_EXP_YIELD 60 +#elif P_UPDATED_EXP_YIELDS >= GEN_4 + #define GEODUDE_EXP_YIELD 73 +#else + #define GEODUDE_EXP_YIELD 86 +#endif #define GOLEM_ATTACK (P_UPDATED_STATS >= GEN_6 ? 120 : 110) -#define GOLEM_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = GOLEM_ATTACK, \ - .baseDefense = 130, \ - .baseSpeed = 45, \ - .baseSpAttack = 55, \ - .baseSpDefense = 65, \ - .catchRate = 45, \ - .expYield = 223, \ - .evYield_Defense = 3, \ - .speciesName = _("Golem"), \ - .cryId = CRY_GOLEM, \ - .natDexNum = NATIONAL_DEX_GOLEM, \ - .categoryName = _("Megaton"), \ - .footprint = gMonFootprint_Golem, \ - .formSpeciesIdTable = sGolemFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define GOLEM_EXP_YIELD 248 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define GOLEM_EXP_YIELD 223 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define GOLEM_EXP_YIELD 218 +#else + #define GOLEM_EXP_YIELD 177 +#endif [SPECIES_GEODUDE] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 255, + .expYield = GEODUDE_EXP_YIELD, + .evYield_Defense = 1, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Geodude"), + .cryId = CRY_GEODUDE, + .natDexNum = NATIONAL_DEX_GEODUDE, + .categoryName = _("Rock"), + .height = 4, .weight = 200, .description = COMPOUND_STRING( "It climbs mountain paths using only the\n" "power of its arms. Because they look just\n" "like boulders lining paths, hikers may step\n" "on them without noticing."), - FRONT_PIC(Geodude, 64, 32), + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Geodude, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 19, .frontAnimFrames = sAnims_Geodude, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .enemyMonElevation = 10, - BACK_PIC(Geodude, 64, 48), + .backPic = gMonBackPic_Geodude, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Geodude), - ICON(Geodude, 1), - LEARNSETS(Geodude), + .palette = gMonPalette_Geodude, + .shinyPalette = gMonShinyPalette_Geodude, + .iconSprite = gMonIcon_Geodude, + .iconPalIndex = 1, + FOOTPRINT(Geodude) + .levelUpLearnset = sGeodudeLevelUpLearnset, + .teachableLearnset = sGeodudeTeachableLearnset, + .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER}), }, [SPECIES_GRAVELER] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, + .evYield_Defense = 2, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Graveler"), + .cryId = CRY_GRAVELER, + .natDexNum = NATIONAL_DEX_GRAVELER, + .categoryName = _("Rock"), + .height = 10, .weight = 1050, .description = COMPOUND_STRING( "They descend from mountains by tumbling\n" "down steep slopes. They are so brutal,\n" "they smash aside obstructing trees and\n" "massive boulders with thunderous tackles."), - FRONT_PIC(Graveler, 64, 48), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Graveler, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Graveler, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Graveler, 64, 48), + .backPic = gMonBackPic_Graveler, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Graveler), - ICON(Graveler, 1), - LEARNSETS(Graveler), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}), + .palette = gMonPalette_Graveler, + .shinyPalette = gMonShinyPalette_Graveler, + .iconSprite = gMonIcon_Graveler, + .iconPalIndex = 1, + FOOTPRINT(Graveler) + .levelUpLearnset = sGravelerLevelUpLearnset, + .teachableLearnset = sGravelerTeachableLearnset, + .formSpeciesIdTable = sGravelerFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM}), }, [SPECIES_GOLEM] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, + .baseHP = 80, + .baseAttack = GOLEM_ATTACK, + .baseDefense = 130, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 45, + .expYield = GOLEM_EXP_YIELD, + .evYield_Defense = 3, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Golem"), + .cryId = CRY_GOLEM, + .natDexNum = NATIONAL_DEX_GOLEM, + .categoryName = _("Megaton"), .height = 14, .weight = 3000, .description = COMPOUND_STRING( @@ -5571,75 +7385,164 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Golem, 64, 56), + .frontPic = gMonFrontPic_Golem, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Golem, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Golem, 64, 48), + .backPic = gMonBackPic_Golem, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Golem), - ICON(Golem, 2), - LEARNSETS(Golem), + .palette = gMonPalette_Golem, + .shinyPalette = gMonShinyPalette_Golem, + .iconSprite = gMonIcon_Golem, + .iconPalIndex = 2, + FOOTPRINT(Golem) + .levelUpLearnset = sGolemLevelUpLearnset, + .teachableLearnset = sGolemTeachableLearnset, + .formSpeciesIdTable = sGolemFormSpeciesIdTable, }, #if P_ALOLAN_FORMS -#define ALOLAN_GEODUDE_FAMILY_INFO \ - .types = { TYPE_ROCK, TYPE_ELECTRIC }, \ - .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE },\ - .isAlolanForm = TRUE - [SPECIES_GEODUDE_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 255, + .expYield = GEODUDE_EXP_YIELD, + .evYield_Defense = 1, + .itemRare = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Geodude"), + .cryId = CRY_GEODUDE, + .natDexNum = NATIONAL_DEX_GEODUDE, + .categoryName = _("Rock"), + .height = 4, .weight = 203, .description = COMPOUND_STRING( "Its body is a magnetic stone. Iron sand\n" "attach to parts of its body with stronger\n" "magnetism. If you carelessly step on one,\n" "it will headbutt and shock you in anger."), - FRONT_PIC(GeodudeAlolan, 48, 32), + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GeodudeAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_GeodudeAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 16, - BACK_PIC(GeodudeAlolan, 64, 56), + .backPic = gMonBackPic_GeodudeAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GeodudeAlolan), - ICON(GeodudeAlolan, 2), - LEARNSETS(GeodudeAlolan), + .palette = gMonPalette_GeodudeAlolan, + .shinyPalette = gMonShinyPalette_GeodudeAlolan, + .iconSprite = gMonIcon_GeodudeAlolan, + .iconPalIndex = 2, + FOOTPRINT(Geodude) + .isAlolanForm = TRUE, + .levelUpLearnset = sGeodudeAlolanLevelUpLearnset, + .teachableLearnset = sGeodudeAlolanTeachableLearnset, + .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLAN}), }, [SPECIES_GRAVELER_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, + .evYield_Defense = 2, + .itemRare = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Graveler"), + .cryId = CRY_GRAVELER, + .natDexNum = NATIONAL_DEX_GRAVELER, + .categoryName = _("Rock"), + .height = 10, .weight = 1100, .description = COMPOUND_STRING( "When two Graveler smash each other over\n" "dravite, their favorite food, they cause\n" "flashes of light and booming noises.\n" "People call them “fireworks of the earth.”"), - FRONT_PIC(GravelerAlolan, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GravelerAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_GravelerAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GravelerAlolan, 64, 48), + .backPic = gMonBackPic_GravelerAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GravelerAlolan), - ICON(GravelerAlolan, 2), - LEARNSETS(GravelerAlolan), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}), + .palette = gMonPalette_GravelerAlolan, + .shinyPalette = gMonShinyPalette_GravelerAlolan, + .iconSprite = gMonIcon_GravelerAlolan, + .iconPalIndex = 2, + FOOTPRINT(Graveler) + .isAlolanForm = TRUE, + .levelUpLearnset = sGravelerAlolanLevelUpLearnset, + .teachableLearnset = sGravelerAlolanTeachableLearnset, + .formSpeciesIdTable = sGravelerFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLAN}), }, [SPECIES_GOLEM_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, + .baseHP = 80, + .baseAttack = GOLEM_ATTACK, + .baseDefense = 130, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 45, + .expYield = GOLEM_EXP_YIELD, + .evYield_Defense = 3, + .itemCommon = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Golem"), + .cryId = CRY_GOLEM, + .natDexNum = NATIONAL_DEX_GOLEM, + .categoryName = _("Megaton"), .height = 17, .weight = 3160, .description = COMPOUND_STRING( @@ -5651,76 +7554,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(GolemAlolan, 56, 64), + .frontPic = gMonFrontPic_GolemAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GolemAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GolemAlolan, 64, 48), + .backPic = gMonBackPic_GolemAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GolemAlolan), - ICON(GolemAlolan, 2), - LEARNSETS(GolemAlolan), + .palette = gMonPalette_GolemAlolan, + .shinyPalette = gMonShinyPalette_GolemAlolan, + .iconSprite = gMonIcon_GolemAlolan, + .iconPalIndex = 2, + FOOTPRINT(Golem) + .isAlolanForm = TRUE, + .levelUpLearnset = sGolemAlolanLevelUpLearnset, + .teachableLearnset = sGolemAlolanTeachableLearnset, + .formSpeciesIdTable = sGolemFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE #if P_FAMILY_PONYTA -#define KANTONIAN_PONYTA_FAMILY_INFO \ - .types = { TYPE_FIRE, TYPE_FIRE }, \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, \ - .bodyColor = BODY_COLOR_YELLOW - -#define PONYTA_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define PONYTA_MISC_INFO \ - .baseHP = 50, \ - .baseAttack = 85, \ - .baseDefense = 55, \ - .baseSpeed = 90, \ - .baseSpAttack = 65, \ - .baseSpDefense = 65, \ - .catchRate = 190, \ - .expYield = 82, \ - .evYield_Speed = 1, \ - .speciesName = _("Ponyta"), \ - .cryId = CRY_PONYTA, \ - .natDexNum = NATIONAL_DEX_PONYTA, \ - .footprint = gMonFootprint_Ponyta, \ - .formSpeciesIdTable = sPonytaFormSpeciesIdTable,\ - PONYTA_FAMILY_MISC_INFO - -#define RAPIDASH_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 100, \ - .baseDefense = 70, \ - .baseSpeed = 105, \ - .baseSpAttack = 80, \ - .baseSpDefense = 80, \ - .catchRate = 60, \ - .expYield = 175, \ - .evYield_Speed = 2, \ - .speciesName = _("Rapidash"), \ - .cryId = CRY_RAPIDASH, \ - .natDexNum = NATIONAL_DEX_RAPIDASH, \ - .height = 17, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 289, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Rapidash, \ - .formSpeciesIdTable = sRapidashFormSpeciesIdTable, \ - PONYTA_FAMILY_MISC_INFO - [SPECIES_PONYTA] = { - KANTONIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 82 : 152, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ponyta"), + .cryId = CRY_PONYTA, + .natDexNum = NATIONAL_DEX_PONYTA, .categoryName = _("Fire Horse"), .height = 10, .weight = 300, @@ -5733,54 +7611,103 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ponyta, 56, 56), + .frontPic = gMonFrontPic_Ponyta, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Ponyta, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 10, - BACK_PIC(Ponyta, 64, 56), + .backPic = gMonBackPic_Ponyta, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Ponyta), - ICON(Ponyta, 3), - LEARNSETS(Ponyta), + .palette = gMonPalette_Ponyta, + .shinyPalette = gMonShinyPalette_Ponyta, + .iconSprite = gMonIcon_Ponyta, + .iconPalIndex = 3, + FOOTPRINT(Ponyta) + .levelUpLearnset = sPonytaLevelUpLearnset, + .teachableLearnset = sPonytaTeachableLearnset, + .formSpeciesIdTable = sPonytaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH}), }, [SPECIES_RAPIDASH] = { - KANTONIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 192, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Rapidash"), + .cryId = CRY_RAPIDASH, + .natDexNum = NATIONAL_DEX_RAPIDASH, .categoryName = _("Fire Horse"), + .height = 17, .weight = 950, .description = COMPOUND_STRING( "It usually canters casually in the fields\n" "and plains. But once a Rapidash turns\n" "serious, its fiery manes flare and blaze\n" "as it gallops its way up to 150 mph."), - FRONT_PIC(Rapidash, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Rapidash, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rapidash, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Rapidash, 64, 64), + .backPic = gMonBackPic_Rapidash, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Rapidash), - ICON(Rapidash, 3), - LEARNSETS(Rapidash), + .palette = gMonPalette_Rapidash, + .shinyPalette = gMonShinyPalette_Rapidash, + .iconSprite = gMonIcon_Rapidash, + .iconPalIndex = 3, + FOOTPRINT(Rapidash) + .levelUpLearnset = sRapidashLevelUpLearnset, + .teachableLearnset = sRapidashTeachableLearnset, + .formSpeciesIdTable = sRapidashFormSpeciesIdTable, }, -#define GALARIAN_PONYTA_FAMILY_INFO \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION },\ - .bodyColor = BODY_COLOR_WHITE, \ - .isGalarianForm = TRUE - #if P_GALARIAN_FORMS [SPECIES_PONYTA_GALARIAN] = { - GALARIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 82 : 152, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Ponyta"), + .cryId = CRY_PONYTA, + .natDexNum = NATIONAL_DEX_PONYTA, .categoryName = _("Unique Horn"), .height = 8, .weight = 240, @@ -5793,127 +7720,136 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PonytaGalarian, 64, 56), + .frontPic = gMonFrontPic_PonytaGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_PonytaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PonytaGalarian, 64, 56), + .backPic = gMonBackPic_PonytaGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PonytaGalarian), - ICON(PonytaGalarian, 2), - LEARNSETS(PonytaGalarian), + .palette = gMonPalette_PonytaGalarian, + .shinyPalette = gMonShinyPalette_PonytaGalarian, + .iconSprite = gMonIcon_PonytaGalarian, + .iconPalIndex = 2, + FOOTPRINT(Ponyta) + .isGalarianForm = TRUE, + .levelUpLearnset = sPonytaGalarianLevelUpLearnset, + .teachableLearnset = sPonytaGalarianTeachableLearnset, + .formSpeciesIdTable = sPonytaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}), }, [SPECIES_RAPIDASH_GALARIAN] = { - GALARIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 192, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Rapidash"), + .cryId = CRY_RAPIDASH, + .natDexNum = NATIONAL_DEX_RAPIDASH, .categoryName = _("Unique Horn"), + .height = 17, .weight = 800, .description = COMPOUND_STRING( "Little can stand up to its psycho cut.\n" "Unleashed from this Pokémon's horn,\n" "the move will punch a hole right\n" "through a thick metal sheet."), - FRONT_PIC(RapidashGalarian, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + .frontPic = gMonFrontPic_RapidashGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RapidashGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RapidashGalarian, 64, 56), + .backPic = gMonBackPic_RapidashGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RapidashGalarian), - ICON(RapidashGalarian, 2), - LEARNSETS(RapidashGalarian), + .palette = gMonPalette_RapidashGalarian, + .shinyPalette = gMonShinyPalette_RapidashGalarian, + .iconSprite = gMonIcon_RapidashGalarian, + .iconPalIndex = 2, + FOOTPRINT(Rapidash) + .isGalarianForm = TRUE, + .levelUpLearnset = sRapidashGalarianLevelUpLearnset, + .teachableLearnset = sRapidashGalarianTeachableLearnset, + .formSpeciesIdTable = sRapidashFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA #if P_FAMILY_SLOWPOKE -#define SLOWPOKE_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 65, \ - .baseDefense = 65, \ - .baseSpeed = 15, \ - .baseSpAttack = 40, \ - .baseSpDefense = 40, \ - .catchRate = 190, \ - .expYield = 63, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowpoke"), \ - .natDexNum = NATIONAL_DEX_SLOWPOKE, \ - .categoryName = _("Dopey"), \ - .height = 12, \ - .weight = 360, \ - .pokemonScale = 256, \ - .pokemonOffset = 10, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Slowpoke, \ - .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable - -#define SLOWBRO_MISC_INFO \ - .catchRate = 75, \ - .itemRare = ITEM_KINGS_ROCK, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowbro"), \ - .cryId = CRY_SLOWBRO, \ - .natDexNum = NATIONAL_DEX_SLOWBRO, \ - .categoryName = _("Hermit Crab"), \ - .footprint = gMonFootprint_Slowbro, \ - .formSpeciesIdTable = sSlowbroFormSpeciesIdTable - -#define SLOWKING_MISC_INFO \ - .catchRate = 70, \ - .expYield = 172, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowking"), \ - .cryId = CRY_SLOWKING, \ - .natDexNum = NATIONAL_DEX_SLOWKING, \ - .weight = 795, \ - .footprint = gMonFootprint_Slowking, \ - .formSpeciesIdTable = sSlowkingFormSpeciesIdTable - [SPECIES_SLOWPOKE] = { - SLOWPOKE_MISC_INFO, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 99, + .evYield_HP = 1, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowpoke"), .cryId = CRY_SLOWPOKE, + .natDexNum = NATIONAL_DEX_SLOWPOKE, + .categoryName = _("Dopey"), + .height = 12, + .weight = 360, .description = COMPOUND_STRING( "It catches prey by dipping its tail in\n" "water at the side of a river. But it often\n" "forgets what it is doing and spends entire\n" "days just loafing at water's edge."), - FRONT_PIC(Slowpoke, 64, 32), + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Slowpoke, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Slowpoke, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slowpoke, 64, 40), + .backPic = gMonBackPic_Slowpoke, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Slowpoke), - ICON(Slowpoke, 0), - LEARNSETS(Slowpoke), + .palette = gMonPalette_Slowpoke, + .shinyPalette = gMonShinyPalette_Slowpoke, + .iconSprite = gMonIcon_Slowpoke, + .iconPalIndex = 0, + FOOTPRINT(Slowpoke) + .levelUpLearnset = sSlowpokeLevelUpLearnset, + .teachableLearnset = sSlowpokeTeachableLearnset, + .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_SLOWBRO}, {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}, {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}), @@ -5921,17 +7857,28 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = [SPECIES_SLOWBRO] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 110, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .expYield = 172, - .evYield_Defense = 2, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, + .evYield_Defense = (P_UPDATED_EVS >= GEN_8) ? 2 : 3, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 16, .weight = 785, .description = COMPOUND_STRING( @@ -5943,35 +7890,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Slowbro, 56, 56), + .frontPic = gMonFrontPic_Slowbro, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Slowbro, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Slowbro, 64, 48), + .backPic = gMonBackPic_Slowbro, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Slowbro), - ICON(Slowbro, 0), - LEARNSETS(Slowbro), + .palette = gMonPalette_Slowbro, + .shinyPalette = gMonShinyPalette_Slowbro, + .iconSprite = gMonIcon_Slowbro, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) + .levelUpLearnset = sSlowbroLevelUpLearnset, + .teachableLearnset = sSlowbroTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, .formChangeTable = sSlowbroFormChangeTable, }, #if P_GEN_2_CROSS_EVOS [SPECIES_SLOWKING] = { - SLOWKING_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 80, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 110, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, .evYield_SpDefense = 3, .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowking"), + .cryId = CRY_SLOWKING, + .natDexNum = NATIONAL_DEX_SLOWKING, .categoryName = _("Royal"), .height = 20, + .weight = 795, .description = COMPOUND_STRING( "It undertakes research every day to\n" "solve the mysteries of the world.\n" @@ -5981,33 +7946,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(Slowking, 48, 64), + .frontPic = gMonFrontPic_Slowking, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Slowking, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Slowking, 56, 64), + .backPic = gMonBackPic_Slowking, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Slowking), - ICON(Slowking, 0), - LEARNSETS(Slowking), + .palette = gMonPalette_Slowking, + .shinyPalette = gMonShinyPalette_Slowking, + .iconSprite = gMonIcon_Slowking, + .iconPalIndex = 0, + FOOTPRINT(Slowking) + .levelUpLearnset = sSlowkingLevelUpLearnset, + .teachableLearnset = sSlowkingTeachableLearnset, + .formSpeciesIdTable = sSlowkingFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS #if P_MEGA_EVOLUTIONS [SPECIES_SLOWBRO_MEGA] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 180, .baseSpeed = 30, .baseSpAttack = 130, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 75, .expYield = 207, .evYield_Defense = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 20, .weight = 1200, .description = COMPOUND_STRING( @@ -6019,61 +8002,109 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(SlowbroMega, 56, 64), + .frontPic = gMonFrontPic_SlowbroMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlowbroMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowbroMega, 64, 48), + .backPic = gMonBackPic_SlowbroMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(SlowbroMega), - ICON(SlowbroMega, 0), - LEARNSETS(Slowbro), - .formChangeTable = sSlowbroFormChangeTable, + .palette = gMonPalette_SlowbroMega, + .shinyPalette = gMonShinyPalette_SlowbroMega, + .iconSprite = gMonIcon_SlowbroMega, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) .isMegaEvolution = TRUE, + .levelUpLearnset = sSlowbroLevelUpLearnset, + .teachableLearnset = sSlowbroTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, + .formChangeTable = sSlowbroFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS [SPECIES_SLOWPOKE_GALARIAN] = { - SLOWPOKE_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 99, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowpoke"), .cryId = CRY_SLOWPOKE_GALARIAN, + .natDexNum = NATIONAL_DEX_SLOWPOKE, + .categoryName = _("Dopey"), + .height = 12, + .weight = 360, .description = COMPOUND_STRING( "Although it is normally zoned out, its\n" "expression abruptly sharpens on occasion.\n" "The cause seems to lie in Slowpoke's diet,\n" "which also give their tails a spicy flavor."), - FRONT_PIC(SlowpokeGalarian, 56, 32), + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SlowpokeGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 19, .frontAnimFrames = sAnims_SlowpokeGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowpokeGalarian, 64, 40), + .backPic = gMonBackPic_SlowpokeGalarian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowpokeGalarian), - ICON(SlowpokeGalarian, 1), - LEARNSETS(SlowpokeGalarian), + .palette = gMonPalette_SlowpokeGalarian, + .shinyPalette = gMonShinyPalette_SlowpokeGalarian, + .iconSprite = gMonIcon_SlowpokeGalarian, + .iconPalIndex = 1, + FOOTPRINT(Slowpoke) .isGalarianForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_SLOWBRO_GALARIAN}, - {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING_GALARIAN}), + .levelUpLearnset = sSlowpokeGalarianLevelUpLearnset, + .teachableLearnset = sSlowpokeGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALARIAN}, + {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALARIAN}), }, [SPECIES_SLOWBRO_GALARIAN] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 100, .baseDefense = 95, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 70, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), + .catchRate = 75, .expYield = 172, .evYield_Attack = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_QUICK_DRAW, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 16, .weight = 705, .description = COMPOUND_STRING( @@ -6085,34 +8116,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(SlowbroGalarian, 64, 56), + .frontPic = gMonFrontPic_SlowbroGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_SlowbroGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowbroGalarian, 64, 48), + .backPic = gMonBackPic_SlowbroGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowbroGalarian), - ICON(SlowbroGalarian, 0), - LEARNSETS(SlowbroGalarian), + .palette = gMonPalette_SlowbroGalarian, + .shinyPalette = gMonShinyPalette_SlowbroGalarian, + .iconSprite = gMonIcon_SlowbroGalarian, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) .isGalarianForm = TRUE, + .levelUpLearnset = sSlowbroGalarianLevelUpLearnset, + .teachableLearnset = sSlowbroGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, }, #if P_GEN_2_CROSS_EVOS [SPECIES_SLOWKING_GALARIAN] = { - SLOWKING_MISC_INFO, .baseHP = 95, .baseAttack = 65, .baseDefense = 80, .baseSpeed = 30, .baseSpAttack = 110, .baseSpDefense = 110, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), + .catchRate = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_CURIOUS_MEDICINE, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowking"), + .cryId = CRY_SLOWKING, + .natDexNum = NATIONAL_DEX_SLOWKING, .categoryName = _("Hexpert"), .height = 18, + .weight = 795, .description = COMPOUND_STRING( "A combination of toxins and the shock of\n" "evolving has increased Shellder's\n" @@ -6122,17 +8171,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(SlowkingGalarian, 48, 64), + .frontPic = gMonFrontPic_SlowkingGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlowkingGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowkingGalarian, 56, 64), + .backPic = gMonBackPic_SlowkingGalarian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowkingGalarian), - ICON(SlowkingGalarian, 2), - LEARNSETS(SlowkingGalarian), + .palette = gMonPalette_SlowkingGalarian, + .shinyPalette = gMonShinyPalette_SlowkingGalarian, + .iconSprite = gMonIcon_SlowkingGalarian, + .iconPalIndex = 2, + FOOTPRINT(Slowking) .isGalarianForm = TRUE, + .levelUpLearnset = sSlowkingGalarianLevelUpLearnset, + .teachableLearnset = sSlowkingGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowkingFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_GALARIAN_FORMS @@ -6147,16 +8203,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 95, .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 89, .evYield_SpAttack = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magnemite"), @@ -6174,18 +8230,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magnemite, 48, 32), + .frontPic = gMonFrontPic_Magnemite, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 20, .frontAnimFrames = sAnims_Magnemite, .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, .enemyMonElevation = 17, - BACK_PIC(Magnemite, 48, 40), + .backPic = gMonBackPic_Magnemite, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magnemite), - ICON(Magnemite, 0), - .footprint = gMonFootprint_Magnemite, - LEARNSETS(Magnemite), + .palette = gMonPalette_Magnemite, + .shinyPalette = gMonShinyPalette_Magnemite, + .iconSprite = gMonIcon_Magnemite, + .iconPalIndex = 0, + FOOTPRINT(Magnemite) + .levelUpLearnset = sMagnemiteLevelUpLearnset, + .teachableLearnset = sMagnemiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGNETON}), }, @@ -6197,16 +8258,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 120, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 60, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 161, .evYield_SpAttack = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magneton"), @@ -6224,19 +8285,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magneton, 64, 56), + .frontPic = gMonFrontPic_Magneton, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Magneton, .frontAnimId = ANIM_FLASH_YELLOW, .enemyMonElevation = 9, - BACK_PIC(Magneton, 64, 56), + .backPic = gMonBackPic_Magneton, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magneton), - ICON(Magneton, 0), - .footprint = gMonFootprint_Magneton, - LEARNSETS(Magneton), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}), + .palette = gMonPalette_Magneton, + .shinyPalette = gMonShinyPalette_Magneton, + .iconSprite = gMonIcon_Magneton, + .iconPalIndex = 0, + FOOTPRINT(Magneton) + .levelUpLearnset = sMagnetonLevelUpLearnset, + .teachableLearnset = sMagnetonTeachableLearnset, + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_MAGNEZONE}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}), }, #if P_GEN_4_CROSS_EVOS @@ -6248,16 +8315,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 211, + #endif .evYield_SpAttack = 3, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magnezone"), @@ -6275,18 +8348,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magnezone, 64, 56), + .frontPic = gMonFrontPic_Magnezone, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magnezone, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 4, - BACK_PIC(Magnezone, 64, 40), + .backPic = gMonBackPic_Magnezone, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magnezone), - ICON(Magnezone, 0), - .footprint = gMonFootprint_Magnezone, - LEARNSETS(Magnezone), + .palette = gMonPalette_Magnezone, + .shinyPalette = gMonShinyPalette_Magnezone, + .iconSprite = gMonIcon_Magnezone, + .iconPalIndex = 0, + FOOTPRINT(Magnezone) + .levelUpLearnset = sMagnezoneLevelUpLearnset, + .teachableLearnset = sMagnezoneTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGNEMITE @@ -6294,34 +8372,38 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_FAMILY_FARFETCHD #define FARFETCHD_ATTACK (P_UPDATED_STATS >= GEN_7 ? 90 : 65) -#define FARFETCHD_MISC_INFO \ - .catchRate = 45, \ - .expYield = 132, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Farfetch'd"), \ - .cryId = CRY_FARFETCHD, \ - .natDexNum = NATIONAL_DEX_FARFETCHD, \ - .categoryName = _("Wild Duck"), \ - .footprint = gMonFootprint_Farfetchd, \ - .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define FARFETCHD_EXP_YIELD 132 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define FARFETCHD_EXP_YIELD 123 +#else + #define FARFETCHD_EXP_YIELD 94 +#endif [SPECIES_FARFETCHD] = { - FARFETCHD_MISC_INFO, .baseHP = 52, + .baseAttack = FARFETCHD_ATTACK, .baseDefense = 55, .baseSpeed = 60, .baseSpAttack = 58, .baseSpDefense = 62, - .baseAttack = FARFETCHD_ATTACK, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + .expYield = FARFETCHD_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_LEEK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Farfetch'd"), + .cryId = CRY_FARFETCHD, + .natDexNum = NATIONAL_DEX_FARFETCHD, + .categoryName = _("Wild Duck"), .height = 8, .weight = 150, .description = COMPOUND_STRING( @@ -6333,30 +8415,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Farfetchd, 48, 56), + .frontPic = gMonFrontPic_Farfetchd, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Farfetchd, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Farfetchd, 64, 48), + .backPic = gMonBackPic_Farfetchd, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Farfetchd), - ICON(Farfetchd, 1), - LEARNSETS(Farfetchd), + .palette = gMonPalette_Farfetchd, + .shinyPalette = gMonShinyPalette_Farfetchd, + .iconSprite = gMonIcon_Farfetchd, + .iconPalIndex = 1, + FOOTPRINT(Farfetchd) + .levelUpLearnset = sFarfetchdLevelUpLearnset, + .teachableLearnset = sFarfetchdTeachableLearnset, + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_FARFETCHD_GALARIAN] = { - FARFETCHD_MISC_INFO, .baseHP = 52, .baseAttack = FARFETCHD_ATTACK + 5, .baseDefense = 55, .baseSpeed = 55, .baseSpAttack = 58, .baseSpDefense = 62, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = FARFETCHD_EXP_YIELD, + .evYield_Attack = 1, + .itemCommon = ITEM_LEEK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Farfetch'd"), + .cryId = CRY_FARFETCHD, + .natDexNum = NATIONAL_DEX_FARFETCHD, + .categoryName = _("Wild Duck"), .height = 8, .weight = 420, .description = COMPOUND_STRING( @@ -6368,17 +8470,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(FarfetchdGalarian, 64, 48), + .frontPic = gMonFrontPic_FarfetchdGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_FarfetchdGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(FarfetchdGalarian, 64, 48), + .backPic = gMonBackPic_FarfetchdGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FarfetchdGalarian), - ICON(FarfetchdGalarian, 1), - LEARNSETS(FarfetchdGalarian), + .palette = gMonPalette_FarfetchdGalarian, + .shinyPalette = gMonShinyPalette_FarfetchdGalarian, + .iconSprite = gMonIcon_FarfetchdGalarian, + .iconPalIndex = 1, + FOOTPRINT(Farfetchd) .isGalarianForm = TRUE, + .levelUpLearnset = sFarfetchdGalarianLevelUpLearnset, + .teachableLearnset = sFarfetchdGalarianTeachableLearnset, + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}), }, @@ -6390,15 +8499,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 68, .baseSpDefense = 82, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, + .itemRare = ITEM_LEEK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Sirfetch'd"), @@ -6416,17 +8526,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sirfetchd, 64, 64), + .frontPic = gMonFrontPic_Sirfetchd, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sirfetchd, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sirfetchd, 64, 48), + .backPic = gMonBackPic_Sirfetchd, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sirfetchd), - ICON(Sirfetchd, 1), - .footprint = gMonFootprint_Sirfetchd, - LEARNSETS(Sirfetchd), + .palette = gMonPalette_Sirfetchd, + .shinyPalette = gMonShinyPalette_Sirfetchd, + .iconSprite = gMonIcon_Sirfetchd, + .iconPalIndex = 1, + FOOTPRINT(Sirfetchd) + .levelUpLearnset = sSirfetchdLevelUpLearnset, + .teachableLearnset = sSirfetchdTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_FARFETCHD @@ -6440,16 +8555,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 75, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 96, .evYield_Attack = 1, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Doduo"), @@ -6467,19 +8582,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = -1, - FRONT_PIC(Doduo, 64, 56), - FRONT_PIC_FEMALE(Doduo, 64, 56), + .frontPic = gMonFrontPic_Doduo, + .frontPicFemale = gMonFrontPic_DoduoF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Doduo, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Doduo, 64, 56), - BACK_PIC_FEMALE(Doduo, 64, 56), + .backPic = gMonBackPic_Doduo, + .backPicFemale = gMonBackPic_DoduoF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Doduo), - ICON(Doduo, 2), - .footprint = gMonFootprint_Doduo, - LEARNSETS(Doduo), + .palette = gMonPalette_Doduo, + .shinyPalette = gMonShinyPalette_Doduo, + .iconSprite = gMonIcon_Doduo, + .iconPalIndex = 2, + FOOTPRINT(Doduo) + .levelUpLearnset = sDoduoLevelUpLearnset, + .teachableLearnset = sDoduoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_DODRIO}), }, @@ -6491,16 +8613,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 110 : 100, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 165, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 161, + #else + .expYield = 158, + #endif .evYield_Attack = 2, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dodrio"), @@ -6518,19 +8646,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 0, - FRONT_PIC(Dodrio, 64, 64), - FRONT_PIC_FEMALE(Dodrio, 64, 64), + .frontPic = gMonFrontPic_Dodrio, + .frontPicFemale = gMonFrontPic_DodrioF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dodrio, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Dodrio, 64, 64), - BACK_PIC_FEMALE(Dodrio, 64, 64), + .backPic = gMonBackPic_Dodrio, + .backPicFemale = gMonBackPic_DodrioF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Dodrio), - ICON(Dodrio, 2), - .footprint = gMonFootprint_Dodrio, - LEARNSETS(Dodrio), + .palette = gMonPalette_Dodrio, + .shinyPalette = gMonShinyPalette_Dodrio, + .iconSprite = gMonIcon_Dodrio, + .iconPalIndex = 2, + FOOTPRINT(Dodrio) + .levelUpLearnset = sDodrioLevelUpLearnset, + .teachableLearnset = sDodrioTeachableLearnset, }, #endif //P_FAMILY_DODUO @@ -6543,15 +8678,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 100, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Seel"), @@ -6569,17 +8704,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seel, 56, 48), + .frontPic = gMonFrontPic_Seel, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Seel, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Seel, 64, 40), + .backPic = gMonBackPic_Seel, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Seel), - ICON(Seel, 0), - .footprint = gMonFootprint_Seel, - LEARNSETS(Seel), + .palette = gMonPalette_Seel, + .shinyPalette = gMonShinyPalette_Seel, + .iconSprite = gMonIcon_Seel, + .iconPalIndex = 0, + FOOTPRINT(Seel) + .levelUpLearnset = sSeelLevelUpLearnset, + .teachableLearnset = sSeelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DEWGONG}), }, @@ -6591,15 +8731,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 75, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Dewgong"), @@ -6617,74 +8757,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 275, .trainerOffset = 0, - FRONT_PIC(Dewgong, 64, 64), + .frontPic = gMonFrontPic_Dewgong, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dewgong, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Dewgong, 64, 56), + .backPic = gMonBackPic_Dewgong, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dewgong), - ICON(Dewgong, 2), - .footprint = gMonFootprint_Dewgong, - LEARNSETS(Dewgong), + .palette = gMonPalette_Dewgong, + .shinyPalette = gMonShinyPalette_Dewgong, + .iconSprite = gMonIcon_Dewgong, + .iconPalIndex = 2, + FOOTPRINT(Dewgong) + .levelUpLearnset = sDewgongLevelUpLearnset, + .teachableLearnset = sDewgongTeachableLearnset, }, #endif //P_FAMILY_SEEL #if P_FAMILY_GRIMER -#define GRIMER_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS } - -#define GRIMER_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 80, \ - .baseDefense = 50, \ - .baseSpeed = 25, \ - .baseSpAttack = 40, \ - .baseSpDefense = 50, \ - .catchRate = 190, \ - .expYield = 65, \ - .evYield_HP = 1, \ - .speciesName = _("Grimer"), \ - .cryId = CRY_GRIMER, \ - .natDexNum = NATIONAL_DEX_GRIMER, \ - .categoryName = _("Sludge"), \ - .footprint = gMonFootprint_Grimer, \ - .formSpeciesIdTable = sGrimerFormSpeciesIdTable,\ - GRIMER_FAMILY_MISC_INFO - -#define MUK_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 105, \ - .baseDefense = 75, \ - .baseSpeed = 50, \ - .baseSpAttack = 65, \ - .baseSpDefense = 100, \ - .catchRate = 75, \ - .expYield = 175, \ - .evYield_HP = 1, \ - .evYield_Attack = 1, \ - .speciesName = _("Muk"), \ - .cryId = CRY_MUK, \ - .natDexNum = NATIONAL_DEX_MUK, \ - .categoryName = _("Sludge"), \ - .footprint = gMonFootprint_Muk, \ - .formSpeciesIdTable = sMukFormSpeciesIdTable, \ - GRIMER_FAMILY_MISC_INFO - -#define KANTONIAN_GRIMER_FAMILY_INFO \ - .types = { TYPE_POISON, TYPE_POISON }, \ - .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, \ - .bodyColor = BODY_COLOR_PURPLE - [SPECIES_GRIMER] = { - KANTONIAN_GRIMER_FAMILY_INFO, - GRIMER_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 90, + .evYield_HP = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimer"), + .cryId = CRY_GRIMER, + .natDexNum = NATIONAL_DEX_GRIMER, + .categoryName = _("Sludge"), .height = 9, .weight = 300, .description = COMPOUND_STRING( @@ -6696,23 +8812,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grimer, 48, 48), + .frontPic = gMonFrontPic_Grimer, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Grimer, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Grimer, 64, 40), + .backPic = gMonBackPic_Grimer, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Grimer), - ICON(Grimer, 2), - LEARNSETS(Grimer), + .palette = gMonPalette_Grimer, + .shinyPalette = gMonShinyPalette_Grimer, + .iconSprite = gMonIcon_Grimer, + .iconPalIndex = 2, + FOOTPRINT(Grimer) + .levelUpLearnset = sGrimerLevelUpLearnset, + .teachableLearnset = sGrimerTeachableLearnset, + .formSpeciesIdTable = sGrimerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK}), }, [SPECIES_MUK] = { - KANTONIAN_GRIMER_FAMILY_INFO, - MUK_MISC_INFO, + .baseHP = 105, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 100, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 157, + .evYield_HP = 1, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Muk"), + .cryId = CRY_MUK, + .natDexNum = NATIONAL_DEX_MUK, + .categoryName = _("Sludge"), .height = 12, .weight = 300, .description = COMPOUND_STRING( @@ -6724,30 +8868,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Muk, 64, 56), + .frontPic = gMonFrontPic_Muk, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Muk, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 45, - BACK_PIC(Muk, 64, 56), + .backPic = gMonBackPic_Muk, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Muk), - ICON(Muk, 2), - LEARNSETS(Muk), + .palette = gMonPalette_Muk, + .shinyPalette = gMonShinyPalette_Muk, + .iconSprite = gMonIcon_Muk, + .iconPalIndex = 2, + FOOTPRINT(Muk) + .levelUpLearnset = sMukLevelUpLearnset, + .teachableLearnset = sMukTeachableLearnset, + .formSpeciesIdTable = sMukFormSpeciesIdTable, }, #if P_ALOLAN_FORMS -#define ALOLAN_GRIMER_FAMILY_INFO \ - .types = { TYPE_POISON, TYPE_DARK }, \ - .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isAlolanForm = TRUE - [SPECIES_GRIMER_ALOLAN] = { - ALOLAN_GRIMER_FAMILY_INFO, - GRIMER_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 90, + .evYield_HP = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Grimer"), + .cryId = CRY_GRIMER, + .natDexNum = NATIONAL_DEX_GRIMER, + .categoryName = _("Sludge"), .height = 7, .weight = 420, .description = COMPOUND_STRING( @@ -6759,24 +8924,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GrimerAlolan, 56, 48), + .frontPic = gMonFrontPic_GrimerAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_GrimerAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrimerAlolan, 64, 40), + .backPic = gMonBackPic_GrimerAlolan, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrimerAlolan), - ICON(GrimerAlolan, 1), - LEARNSETS(GrimerAlolan), + .palette = gMonPalette_GrimerAlolan, + .shinyPalette = gMonShinyPalette_GrimerAlolan, + .iconSprite = gMonIcon_GrimerAlolan, + .iconPalIndex = 1, + FOOTPRINT(Grimer) + .isAlolanForm = TRUE, + .levelUpLearnset = sGrimerAlolanLevelUpLearnset, + .teachableLearnset = sGrimerAlolanTeachableLearnset, + .formSpeciesIdTable = sGrimerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}), }, [SPECIES_MUK_ALOLAN] = { - MUK_MISC_INFO, - ALOLAN_GRIMER_FAMILY_INFO, + .baseHP = 105, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 100, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 157, + .evYield_HP = 1, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, + .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, + .speciesName = _("Muk"), + .cryId = CRY_MUK, + .natDexNum = NATIONAL_DEX_MUK, + .categoryName = _("Sludge"), .height = 10, .weight = 520, .description = COMPOUND_STRING( @@ -6788,16 +8982,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MukAlolan, 64, 64), + .frontPic = gMonFrontPic_MukAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_MukAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MukAlolan, 64, 56), + .backPic = gMonBackPic_MukAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MukAlolan), - ICON(MukAlolan, 0), - LEARNSETS(MukAlolan), + .palette = gMonPalette_MukAlolan, + .shinyPalette = gMonShinyPalette_MukAlolan, + .iconSprite = gMonIcon_MukAlolan, + .iconPalIndex = 0, + FOOTPRINT(Muk) + .isAlolanForm = TRUE, + .levelUpLearnset = sMukAlolanLevelUpLearnset, + .teachableLearnset = sMukAlolanTeachableLearnset, + .formSpeciesIdTable = sMukFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER @@ -6811,9 +9013,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 97, .evYield_Defense = 1, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6821,7 +9023,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Shellder"), @@ -6839,18 +9041,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shellder, 40, 40), + .frontPic = gMonFrontPic_Shellder, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shellder, .frontAnimId = ANIM_TWIST, .frontAnimDelay = 20, - BACK_PIC(Shellder, 48, 24), + .backPic = gMonBackPic_Shellder, + .backPicSize = MON_COORDS_SIZE(48, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shellder), - ICON(Shellder, 2), - .footprint = gMonFootprint_Shellder, - LEARNSETS(Shellder), + .palette = gMonPalette_Shellder, + .shinyPalette = gMonShinyPalette_Shellder, + .iconSprite = gMonIcon_Shellder, + .iconPalIndex = 2, + FOOTPRINT(Shellder) + .levelUpLearnset = sShellderLevelUpLearnset, + .teachableLearnset = sShellderTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}), }, @@ -6862,9 +9069,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 85, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 203, .evYield_Defense = 2, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6872,7 +9079,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Cloyster"), @@ -6890,17 +9097,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 269, .trainerOffset = 1, - FRONT_PIC(Cloyster, 64, 64), + .frontPic = gMonFrontPic_Cloyster, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cloyster, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Cloyster, 64, 56), + .backPic = gMonBackPic_Cloyster, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Cloyster), - ICON(Cloyster, 2), - .footprint = gMonFootprint_Cloyster, - LEARNSETS(Cloyster), + .palette = gMonPalette_Cloyster, + .shinyPalette = gMonShinyPalette_Cloyster, + .iconSprite = gMonIcon_Cloyster, + .iconPalIndex = 2, + FOOTPRINT(Cloyster) + .levelUpLearnset = sCloysterLevelUpLearnset, + .teachableLearnset = sCloysterTeachableLearnset, }, #endif //P_FAMILY_SHELLDER @@ -6913,16 +9125,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 35, - .types = { TYPE_GHOST, TYPE_POISON }, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 95, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gastly"), .cryId = CRY_GASTLY, @@ -6939,18 +9151,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gastly, 64, 48), + .frontPic = gMonFrontPic_Gastly, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Gastly, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 13, - BACK_PIC(Gastly, 64, 56), + .backPic = gMonBackPic_Gastly, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Gastly), - ICON(Gastly, 2), - .footprint = gMonFootprint_Gastly, - LEARNSETS(Gastly), + .palette = gMonPalette_Gastly, + .shinyPalette = gMonShinyPalette_Gastly, + .iconSprite = gMonIcon_Gastly, + .iconPalIndex = 2, + FOOTPRINT(Gastly) + .levelUpLearnset = sGastlyLevelUpLearnset, + .teachableLearnset = sGastlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_HAUNTER}), }, @@ -6962,16 +9179,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_POISON }, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), .catchRate = 90, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 126, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Haunter"), .cryId = CRY_HAUNTER, @@ -6988,20 +9205,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Haunter, 64, 48), + .frontPic = gMonFrontPic_Haunter, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Haunter, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 23, .enemyMonElevation = 14, - BACK_PIC(Haunter, 64, 56), + .backPic = gMonBackPic_Haunter, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Haunter), - ICON(Haunter, 2), - .footprint = gMonFootprint_Haunter, - LEARNSETS(Haunter), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}), + .palette = gMonPalette_Haunter, + .shinyPalette = gMonShinyPalette_Haunter, + .iconSprite = gMonIcon_Haunter, + .iconPalIndex = 2, + FOOTPRINT(Haunter) + .levelUpLearnset = sHaunterLevelUpLearnset, + .teachableLearnset = sHaunterTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GENGAR}), }, #if P_UPDATED_ABILITIES >= GEN_7 @@ -7010,35 +9233,35 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #define GENGAR_ABILITIES {ABILITY_LEVITATE, ABILITY_NONE} #endif -#define GENGAR_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Gengar"), \ - .natDexNum = NATIONAL_DEX_GENGAR, \ - .categoryName = _("Shadow"), \ - .footprint = gMonFootprint_Gengar, \ - LEARNSETS(Gengar), \ - .formSpeciesIdTable = sGengarFormSpeciesIdTable, \ - .formChangeTable = sGengarFormChangeTable - [SPECIES_GENGAR] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 225, + #else + .expYield = 190, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = GENGAR_ABILITIES, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 15, .weight = 405, .description = COMPOUND_STRING( @@ -7050,30 +9273,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(Gengar, 56, 56), + .frontPic = gMonFrontPic_Gengar, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gengar, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Gengar, 64, 48), + .backPic = gMonBackPic_Gengar, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gengar), - ICON(Gengar, 2), + .palette = gMonPalette_Gengar, + .shinyPalette = gMonShinyPalette_Gengar, + .iconSprite = gMonIcon_Gengar, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GENGAR_MEGA] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 80, .baseSpeed = 130, .baseSpAttack = 170, .baseSpDefense = 95, - .expYield = 270, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR_MEGA, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 14, .weight = 405, .description = COMPOUND_STRING( @@ -7085,31 +9328,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(GengarMega, 64, 64), + .frontPic = gMonFrontPic_GengarMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_GengarMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GengarMega, 64, 64), + .backPic = gMonBackPic_GengarMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(GengarMega), - ICON(GengarMega, 2), + .palette = gMonPalette_GengarMega, + .shinyPalette = gMonShinyPalette_GengarMega, + .iconSprite = gMonIcon_GengarMega, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .isMegaEvolution = TRUE, + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_GENGAR_GIGANTAMAX] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, .expYield = 225, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = GENGAR_ABILITIES, - .isGigantamax = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 200, .weight = 0, .description = COMPOUND_STRING( @@ -7121,15 +9385,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(GengarGigantamax, 64, 64), + .frontPic = gMonFrontPic_GengarGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_GengarGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GengarGigantamax, 64, 64), + .backPic = gMonBackPic_GengarGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GengarGigantamax), - ICON(GengarGigantamax, 2), + .palette = gMonPalette_GengarGigantamax, + .shinyPalette = gMonShinyPalette_GengarGigantamax, + .iconSprite = gMonIcon_GengarGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .isGigantamax = TRUE, + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY @@ -7143,15 +9417,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, - .expYield = 77, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 77 : 108, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Onix"), @@ -7169,53 +9443,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(Onix, 64, 64), + .frontPic = gMonFrontPic_Onix, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Onix, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Onix, 64, 64), + .backPic = gMonBackPic_Onix, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Onix), - ICON(Onix, 2), - .footprint = gMonFootprint_Onix, - LEARNSETS(Onix), + .palette = gMonPalette_Onix, + .shinyPalette = gMonShinyPalette_Onix, + .iconSprite = gMonIcon_Onix, + .iconPalIndex = 2, + FOOTPRINT(Onix) + .levelUpLearnset = sOnixLevelUpLearnset, + .teachableLearnset = sOnixTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}, {EVO_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}), }, #if P_GEN_2_CROSS_EVOS -#define STEELIX_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_GROUND }, \ - .catchRate = 25, \ - .evYield_Defense = 2, \ - .itemRare = ITEM_METAL_COAT, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Steelix"), \ - .natDexNum = NATIONAL_DEX_STEELIX, \ - .categoryName = _("Iron Snake"), \ - .footprint = gMonFootprint_Steelix, \ - LEARNSETS(Steelix), \ - .formSpeciesIdTable = sSteelixFormSpeciesIdTable, \ - .formChangeTable = sSteelixFormChangeTable - [SPECIES_STEELIX] = { - STEELIX_MISC_INFO, .baseHP = 75, .baseAttack = 85, .baseDefense = 200, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 65, - .expYield = 179, + .types = MON_TYPES(TYPE_STEEL, TYPE_GROUND), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 196, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Steelix"), .cryId = CRY_STEELIX, + .natDexNum = NATIONAL_DEX_STEELIX, + .categoryName = _("Iron Snake"), .height = 92, .weight = 4000, .description = COMPOUND_STRING( @@ -7227,33 +9499,56 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(Steelix, 64, 64), - FRONT_PIC_FEMALE(Steelix, 64, 64), + .frontPic = gMonFrontPic_Steelix, + .frontPicFemale = gMonFrontPic_SteelixF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Steelix, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 45, - BACK_PIC(Steelix, 64, 64), - BACK_PIC_FEMALE(Steelix, 64, 64), + .backPic = gMonBackPic_Steelix, + .backPicFemale = gMonBackPic_SteelixF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Steelix), - ICON(Steelix, 0), + .palette = gMonPalette_Steelix, + .shinyPalette = gMonShinyPalette_Steelix, + .iconSprite = gMonIcon_Steelix, + .iconPalIndex = 0, + FOOTPRINT(Steelix) + .levelUpLearnset = sSteelixLevelUpLearnset, + .teachableLearnset = sSteelixTeachableLearnset, + .formSpeciesIdTable = sSteelixFormSpeciesIdTable, + .formChangeTable = sSteelixFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_STEELIX_MEGA] = { - STEELIX_MISC_INFO, .baseHP = 75, .baseAttack = 125, .baseDefense = 230, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_STEEL, TYPE_GROUND), + .catchRate = 25, .expYield = 214, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Steelix"), .cryId = CRY_STEELIX_MEGA, + .natDexNum = NATIONAL_DEX_STEELIX, + .categoryName = _("Iron Snake"), .height = 105, .weight = 7400, .description = COMPOUND_STRING( @@ -7265,16 +9560,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(SteelixMega, 64, 64), + .frontPic = gMonFrontPic_SteelixMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SteelixMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SteelixMega, 64, 64), + .backPic = gMonBackPic_SteelixMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(SteelixMega), - ICON(SteelixMega, 0), + .palette = gMonPalette_SteelixMega, + .shinyPalette = gMonShinyPalette_SteelixMega, + .iconSprite = gMonIcon_SteelixMega, + .iconPalIndex = 0, + FOOTPRINT(Steelix) .isMegaEvolution = TRUE, + .levelUpLearnset = sSteelixLevelUpLearnset, + .teachableLearnset = sSteelixTeachableLearnset, + .formSpeciesIdTable = sSteelixFormSpeciesIdTable, + .formChangeTable = sSteelixFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_2_CROSS_EVOS @@ -7289,15 +9593,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 42, .baseSpAttack = 43, .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 102, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Drowzee"), @@ -7315,18 +9619,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drowzee, 48, 56), + .frontPic = gMonFrontPic_Drowzee, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drowzee, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 48, - BACK_PIC(Drowzee, 56, 48), + .backPic = gMonBackPic_Drowzee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Drowzee), - ICON(Drowzee, 2), - .footprint = gMonFootprint_Drowzee, - LEARNSETS(Drowzee), + .palette = gMonPalette_Drowzee, + .shinyPalette = gMonShinyPalette_Drowzee, + .iconSprite = gMonIcon_Drowzee, + .iconPalIndex = 2, + FOOTPRINT(Drowzee) + .levelUpLearnset = sDrowzeeLevelUpLearnset, + .teachableLearnset = sDrowzeeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_HYPNO}), }, @@ -7338,15 +9647,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 67, .baseSpAttack = 73, .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 75, - .expYield = 169, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 169 : 165, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Hypno"), @@ -7364,20 +9673,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hypno, 64, 64), - FRONT_PIC_FEMALE(Hypno, 64, 64), + .frontPic = gMonFrontPic_Hypno, + .frontPicFemale = gMonFrontPic_HypnoF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Hypno, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, - BACK_PIC(Hypno, 64, 56), - BACK_PIC_FEMALE(Hypno, 64, 56), + .backPic = gMonBackPic_Hypno, + .backPicFemale = gMonBackPic_HypnoF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Hypno), - ICON(Hypno, 2), - .footprint = gMonFootprint_Hypno, - LEARNSETS(Hypno), + .palette = gMonPalette_Hypno, + .shinyPalette = gMonShinyPalette_Hypno, + .iconSprite = gMonIcon_Hypno, + .iconPalIndex = 2, + FOOTPRINT(Hypno) + .levelUpLearnset = sHypnoLevelUpLearnset, + .teachableLearnset = sHypnoTeachableLearnset, }, #endif //P_FAMILY_DROWZEE @@ -7390,15 +9706,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 115, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Krabby"), @@ -7416,51 +9732,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Krabby, 64, 48), + .frontPic = gMonFrontPic_Krabby, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Krabby, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Krabby, 56, 40), + .backPic = gMonBackPic_Krabby, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Krabby), - ICON(Krabby, 0), - .footprint = gMonFootprint_Krabby, - LEARNSETS(Krabby), + .palette = gMonPalette_Krabby, + .shinyPalette = gMonShinyPalette_Krabby, + .iconSprite = gMonIcon_Krabby, + .iconPalIndex = 0, + FOOTPRINT(Krabby) + .levelUpLearnset = sKrabbyLevelUpLearnset, + .teachableLearnset = sKrabbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_KINGLER}), }, -#define KINGLER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 130, \ - .baseDefense = 115, \ - .baseSpeed = 75, \ - .baseSpAttack = 50, \ - .baseSpDefense = 50, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, \ - .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE },\ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = TRUE, \ - .speciesName = _("Kingler"), \ - .cryId = CRY_KINGLER, \ - .natDexNum = NATIONAL_DEX_KINGLER, \ - .categoryName = _("Pincer"), \ - .footprint = gMonFootprint_Kingler, \ - LEARNSETS(Kingler), \ - .formSpeciesIdTable = sKinglerFormSpeciesIdTable, \ - .formChangeTable = sKinglerFormChangeTable - [SPECIES_KINGLER] = { - KINGLER_MISC_INFO, + .baseHP = 55, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 206, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), + .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Kingler"), + .cryId = CRY_KINGLER, + .natDexNum = NATIONAL_DEX_KINGLER, + .categoryName = _("Pincer"), .height = 13, .weight = 600, .description = COMPOUND_STRING( @@ -7472,22 +9786,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kingler, 64, 48), + .frontPic = gMonFrontPic_Kingler, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Kingler, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 4, - BACK_PIC(Kingler, 64, 56), + .backPic = gMonBackPic_Kingler, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Kingler), - ICON(Kingler, 0), + .palette = gMonPalette_Kingler, + .shinyPalette = gMonShinyPalette_Kingler, + .iconSprite = gMonIcon_Kingler, + .iconPalIndex = 0, + FOOTPRINT(Kingler) + .levelUpLearnset = sKinglerLevelUpLearnset, + .teachableLearnset = sKinglerTeachableLearnset, + .formSpeciesIdTable = sKinglerFormSpeciesIdTable, + .formChangeTable = sKinglerFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_KINGLER_GIGANTAMAX] = { - KINGLER_MISC_INFO, + .baseHP = 55, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 206, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), + .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Kingler"), + .cryId = CRY_KINGLER, + .natDexNum = NATIONAL_DEX_KINGLER, + .categoryName = _("Pincer"), .height = 190, .weight = 0, .description = COMPOUND_STRING( @@ -7499,169 +9843,253 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(KinglerGigantamax, 64, 64), + .frontPic = gMonFrontPic_KinglerGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KinglerGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KinglerGigantamax, 64, 64), + .backPic = gMonBackPic_KinglerGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(KinglerGigantamax), - ICON(KinglerGigantamax, 0), + .palette = gMonPalette_KinglerGigantamax, + .shinyPalette = gMonShinyPalette_KinglerGigantamax, + .iconSprite = gMonIcon_KinglerGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Kingler) .isGigantamax = TRUE, + .levelUpLearnset = sKinglerLevelUpLearnset, + .teachableLearnset = sKinglerTeachableLearnset, + .formSpeciesIdTable = sKinglerFormSpeciesIdTable, + .formChangeTable = sKinglerFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY #if P_FAMILY_VOLTORB -#define VOLTORB_FAMILY_MISC_INFO \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, \ - .bodyColor = BODY_COLOR_RED - -#define VOLTORB_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 30, \ - .baseDefense = 50, \ - .baseSpeed = 100, \ - .baseSpAttack = 55, \ - .baseSpDefense = 55, \ - .catchRate = 190, \ - .expYield = 66, \ - .evYield_Speed = 1, \ - .speciesName = _("Voltorb"), \ - .cryId = CRY_VOLTORB, \ - .natDexNum = NATIONAL_DEX_VOLTORB, \ - .height = 5, \ - .pokemonScale = 364, \ - .pokemonOffset = -8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Voltorb, \ - .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, \ - VOLTORB_FAMILY_MISC_INFO - -#define ELECTRODE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 50, \ - .baseDefense = 70, \ - .baseSpAttack = 80, \ - .baseSpDefense = 80, \ - .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, \ - .catchRate = 60, \ - .expYield = 172, \ - .evYield_Speed = 2, \ - .speciesName = _("Electrode"), \ - .cryId = CRY_ELECTRODE, \ - .natDexNum = NATIONAL_DEX_ELECTRODE, \ - .height = 12, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Electrode, \ - .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, \ - VOLTORB_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ELECTRODE_EXP_YIELD 172 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ELECTRODE_EXP_YIELD 168 +#else + #define ELECTRODE_EXP_YIELD 150 +#endif [SPECIES_VOLTORB] = { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 103, + .evYield_Speed = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Voltorb"), + .cryId = CRY_VOLTORB, + .natDexNum = NATIONAL_DEX_VOLTORB, .categoryName = _("Ball"), + .height = 5, .weight = 104, .description = COMPOUND_STRING( "It bears an uncanny and unexplained\n" "resemblance to a Poké Ball. Because it\n" "explodes at the slightest shock, even\n" "veteran Trainers treat it with caution."), - FRONT_PIC(Voltorb, 32, 40), + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Voltorb, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Voltorb, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Voltorb, 48, 40), + .backPic = gMonBackPic_Voltorb, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Voltorb), - ICON(Voltorb, 0), - LEARNSETS(Voltorb), + .palette = gMonPalette_Voltorb, + .shinyPalette = gMonShinyPalette_Voltorb, + .iconSprite = gMonIcon_Voltorb, + .iconPalIndex = 0, + FOOTPRINT(Voltorb) + .levelUpLearnset = sVoltorbLevelUpLearnset, + .teachableLearnset = sVoltorbTeachableLearnset, + .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTRODE}), }, [SPECIES_ELECTRODE] = { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 60, + .expYield = ELECTRODE_EXP_YIELD, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Electrode"), + .cryId = CRY_ELECTRODE, + .natDexNum = NATIONAL_DEX_ELECTRODE, .categoryName = _("Ball"), + .height = 12, .weight = 666, .description = COMPOUND_STRING( "They appear in great numbers at electric\n" "power plants. Because they feed on\n" "electricity, they cause massive and\n" "chaotic blackouts in nearby cities."), - FRONT_PIC(Electrode, 48, 48), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Electrode, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Electrode, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, - BACK_PIC(Electrode, 64, 40), + .backPic = gMonBackPic_Electrode, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Electrode), - ICON(Electrode, 0), - LEARNSETS(Electrode), + .palette = gMonPalette_Electrode, + .shinyPalette = gMonShinyPalette_Electrode, + .iconSprite = gMonIcon_Electrode, + .iconPalIndex = 0, + FOOTPRINT(Electrode) + .levelUpLearnset = sElectrodeLevelUpLearnset, + .teachableLearnset = sElectrodeTeachableLearnset, + .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_VOLTORB_HISUIAN] = { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 103, + .evYield_Speed = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Voltorb"), + .cryId = CRY_VOLTORB, + .natDexNum = NATIONAL_DEX_VOLTORB, .categoryName = _("Sphere"), + .height = 5, .weight = 130, .description = COMPOUND_STRING( "It esembles an ancient Poké Ball design.\n" "When excited, it discharges the electric\n" "current it has stored in its belly, then\n" "lets out a great, uproarious laugh."), - FRONT_PIC(VoltorbHisuian, 32, 32), + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_VoltorbHisuian, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_VoltorbHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VoltorbHisuian, 48, 32), + .backPic = gMonBackPic_VoltorbHisuian, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VoltorbHisuian), - ICON(VoltorbHisuian, 0), - LEARNSETS(VoltorbHisuian), + .palette = gMonPalette_VoltorbHisuian, + .shinyPalette = gMonShinyPalette_VoltorbHisuian, + .iconSprite = gMonIcon_VoltorbHisuian, + .iconPalIndex = 0, + FOOTPRINT(Voltorb) .isHisuianForm = TRUE, + .levelUpLearnset = sVoltorbHisuianLevelUpLearnset, + .teachableLearnset = sVoltorbHisuianTeachableLearnset, + .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}), }, [SPECIES_ELECTRODE_HISUIAN] = { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 60, + .expYield = ELECTRODE_EXP_YIELD, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Electrode"), + .cryId = CRY_ELECTRODE, + .natDexNum = NATIONAL_DEX_ELECTRODE, .categoryName = _("Sphere"), + .height = 12, .weight = 710, .description = COMPOUND_STRING( "The tissue on the surface of its body is\n" "similar in composition to an Apricorn.\n" "When irritated, it lets loose an electric\n" "current equal to 20 lightning bolts."), - FRONT_PIC(ElectrodeHisuian, 48, 48), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ElectrodeHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_ElectrodeHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ElectrodeHisuian, 64, 40), + .backPic = gMonBackPic_ElectrodeHisuian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ElectrodeHisuian), - ICON(ElectrodeHisuian, 1), - LEARNSETS(ElectrodeHisuian), + .palette = gMonPalette_ElectrodeHisuian, + .shinyPalette = gMonShinyPalette_ElectrodeHisuian, + .iconSprite = gMonIcon_ElectrodeHisuian, + .iconPalIndex = 1, + FOOTPRINT(Electrode) .isHisuianForm = TRUE, + .levelUpLearnset = sElectrodeHisuianLevelUpLearnset, + .teachableLearnset = sElectrodeHisuianTeachableLearnset, + .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB @@ -7675,15 +10103,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 98, .evYield_Defense = 1, + .itemRare = ITEM_PSYCHIC_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Exeggcute"), @@ -7701,51 +10130,59 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Exeggcute, 56, 40), + .frontPic = gMonFrontPic_Exeggcute, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Exeggcute, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Exeggcute, 64, 32), + .backPic = gMonBackPic_Exeggcute, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Exeggcute), - ICON(Exeggcute, 0), - .footprint = gMonFootprint_Exeggcute, - LEARNSETS(Exeggcute), + .palette = gMonPalette_Exeggcute, + .shinyPalette = gMonShinyPalette_Exeggcute, + .iconSprite = gMonIcon_Exeggcute, + .iconPalIndex = 0, + FOOTPRINT(Exeggcute) + .levelUpLearnset = sExeggcuteLevelUpLearnset, + .teachableLearnset = sExeggcuteTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}, {EVO_NONE, 0, SPECIES_EXEGGUTOR_ALOLAN}), }, -#define EXEGGUTOR_MISC_INFO \ - .catchRate = 45, \ - .expYield = 186, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Exeggutor"), \ - .cryId = CRY_EXEGGUTOR, \ - .natDexNum = NATIONAL_DEX_EXEGGUTOR, \ - .categoryName = _("Coconut"), \ - .footprint = gMonFootprint_Exeggutor, \ - .formSpeciesIdTable = sExeggutorFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define EXEGGUTOR_EXP_YIELD 186 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define EXEGGUTOR_EXP_YIELD 182 +#else + #define EXEGGUTOR_EXP_YIELD 212 +#endif #define EXEGGUTOR_SP_DEF (P_UPDATED_STATS >= GEN_7 ? 75 : 65) [SPECIES_EXEGGUTOR] = { - EXEGGUTOR_MISC_INFO, .baseHP = 95, .baseAttack = 95, .baseDefense = 85, .baseSpeed = 55, .baseSpAttack = 125, .baseSpDefense = EXEGGUTOR_SP_DEF, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = EXEGGUTOR_EXP_YIELD, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Exeggutor"), + .cryId = CRY_EXEGGUTOR, + .natDexNum = NATIONAL_DEX_EXEGGUTOR, + .categoryName = _("Coconut"), .height = 20, .weight = 1200, .description = COMPOUND_STRING( @@ -7757,30 +10194,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(Exeggutor, 64, 64), + .frontPic = gMonFrontPic_Exeggutor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Exeggutor, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Exeggutor, 64, 48), + .backPic = gMonBackPic_Exeggutor, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Exeggutor), - ICON(Exeggutor, 1), - LEARNSETS(Exeggutor), + .palette = gMonPalette_Exeggutor, + .shinyPalette = gMonShinyPalette_Exeggutor, + .iconSprite = gMonIcon_Exeggutor, + .iconPalIndex = 1, + FOOTPRINT(Exeggutor) + .levelUpLearnset = sExeggutorLevelUpLearnset, + .teachableLearnset = sExeggutorTeachableLearnset, + .formSpeciesIdTable = sExeggutorFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_EXEGGUTOR_ALOLAN] = { - EXEGGUTOR_MISC_INFO, .baseHP = 95, .baseAttack = 105, .baseDefense = 85, .baseSpeed = 45, .baseSpAttack = 125, .baseSpDefense = EXEGGUTOR_SP_DEF, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = EXEGGUTOR_EXP_YIELD, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_FRISK, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Exeggutor"), + .cryId = CRY_EXEGGUTOR, + .natDexNum = NATIONAL_DEX_EXEGGUTOR, + .categoryName = _("Coconut"), .height = 109, .weight = 4156, .description = COMPOUND_STRING( @@ -7792,17 +10248,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(ExeggutorAlolan, 64, 64), + .frontPic = gMonFrontPic_ExeggutorAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ExeggutorAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ExeggutorAlolan, 64, 56), + .backPic = gMonBackPic_ExeggutorAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ExeggutorAlolan), - ICON(ExeggutorAlolan, 1), - LEARNSETS(ExeggutorAlolan), + .palette = gMonPalette_ExeggutorAlolan, + .shinyPalette = gMonShinyPalette_ExeggutorAlolan, + .iconSprite = gMonIcon_ExeggutorAlolan, + .iconPalIndex = 1, + FOOTPRINT(Exeggutor) .isAlolanForm = TRUE, + .levelUpLearnset = sExeggutorAlolanLevelUpLearnset, + .teachableLearnset = sExeggutorAlolanTeachableLearnset, + .formSpeciesIdTable = sExeggutorFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE @@ -7816,16 +10279,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 87, .evYield_Defense = 1, .itemRare = ITEM_THICK_CLUB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Cubone"), @@ -7843,98 +10306,184 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cubone, 56, 40), + .frontPic = gMonFrontPic_Cubone, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Cubone, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 30, - BACK_PIC(Cubone, 56, 48), + .backPic = gMonBackPic_Cubone, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Cubone), - ICON(Cubone, 2), - .footprint = gMonFootprint_Cubone, - LEARNSETS(Cubone), + .palette = gMonPalette_Cubone, + .shinyPalette = gMonShinyPalette_Cubone, + .iconSprite = gMonIcon_Cubone, + .iconPalIndex = 2, + FOOTPRINT(Cubone) + .levelUpLearnset = sCuboneLevelUpLearnset, + .teachableLearnset = sCuboneTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MAROWAK}, - {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}), + {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}, + {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN_TOTEM}), }, -#define MAROWAK_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 80, \ - .baseDefense = 110, \ - .baseSpeed = 45, \ - .baseSpAttack = 50, \ - .baseSpDefense = 80, \ - .catchRate = 75, \ - .expYield = 149, \ - .evYield_Defense = 2, \ - .itemRare = ITEM_THICK_CLUB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .speciesName = _("Marowak"), \ - .cryId = CRY_MAROWAK, \ - .natDexNum = NATIONAL_DEX_MAROWAK, \ - .categoryName = _("Bone Keeper"), \ - .height = 10, \ - .pokemonScale = 293, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Marowak, \ - .formSpeciesIdTable = sMarowakFormSpeciesIdTable - [SPECIES_MAROWAK] = { - MAROWAK_MISC_INFO, - .types = { TYPE_GROUND, TYPE_GROUND }, + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 124, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 10, .weight = 450, .description = COMPOUND_STRING( "A Marowak is the evolved form of a Cubone\n" "that has grown tough by overcoming the\n" "grief of losing its mother. Its tempered\n" "and hardened spirit is not easily broken."), - FRONT_PIC(Marowak, 56, 64), + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Marowak, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Marowak, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Marowak, 48, 56), + .backPic = gMonBackPic_Marowak, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Marowak), - ICON(Marowak, 2), - LEARNSETS(Marowak), + .palette = gMonPalette_Marowak, + .shinyPalette = gMonShinyPalette_Marowak, + .iconSprite = gMonIcon_Marowak, + .iconPalIndex = 2, + FOOTPRINT(Marowak) + .levelUpLearnset = sMarowakLevelUpLearnset, + .teachableLearnset = sMarowakTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_MAROWAK_ALOLAN] = { - MAROWAK_MISC_INFO, - .types = { TYPE_FIRE, TYPE_GHOST }, + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 124, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_CURSED_BODY, ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 10, .weight = 340, - .description = COMPOUND_STRING( - "The cursed flames that light up the bone\n" - "carried by this Pokémon are said\n" - "to cause both mental and physical\n" - "pain that will never fade."), - FRONT_PIC(MarowakAlolan, 64, 64), + .description = gMarowakAlolanPokedexText, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MarowakAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_MarowakAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MarowakAlolan, 56, 56), + .backPic = gMonBackPic_MarowakAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MarowakAlolan), - ICON(MarowakAlolan, 1), - LEARNSETS(MarowakAlolan), + .palette = gMonPalette_MarowakAlolan, + .shinyPalette = gMonShinyPalette_MarowakAlolan, + .iconSprite = gMonIcon_MarowakAlolan, + .iconPalIndex = 1, + FOOTPRINT(Marowak) .isAlolanForm = TRUE, + .levelUpLearnset = sMarowakAlolanLevelUpLearnset, + .teachableLearnset = sMarowakAlolanTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, + }, + + [SPECIES_MAROWAK_ALOLAN_TOTEM] = + { + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 75, + .expYield = 149, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 17, + .weight = 980, + .description = gMarowakAlolanPokedexText, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MarowakAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_MarowakAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MarowakAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MarowakAlolan, + .shinyPalette = gMonShinyPalette_MarowakAlolan, + .iconSprite = gMonIcon_MarowakAlolan, + .iconPalIndex = 1, + FOOTPRINT(Marowak) + .isTotem = TRUE, + .isAlolanForm = TRUE, + .levelUpLearnset = sMarowakAlolanLevelUpLearnset, + .teachableLearnset = sMarowakAlolanTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_CUBONE @@ -7949,15 +10498,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 42, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 91, .evYield_Attack = 1, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Tyrogue"), @@ -7975,17 +10524,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tyrogue, 40, 48), + .frontPic = gMonFrontPic_Tyrogue, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Tyrogue, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Tyrogue, 48, 48), + .backPic = gMonBackPic_Tyrogue, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Tyrogue), - ICON(Tyrogue, 2), - .footprint = gMonFootprint_Tyrogue, - LEARNSETS(Tyrogue), + .palette = gMonPalette_Tyrogue, + .shinyPalette = gMonShinyPalette_Tyrogue, + .iconSprite = gMonIcon_Tyrogue, + .iconPalIndex = 2, + FOOTPRINT(Tyrogue) + .levelUpLearnset = sTyrogueLevelUpLearnset, + .teachableLearnset = sTyrogueTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}), @@ -8000,15 +10554,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 87, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 139, .evYield_Attack = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_RECKLESS, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmonlee"), @@ -8026,17 +10580,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 259, .trainerOffset = 1, - FRONT_PIC(Hitmonlee, 64, 64), + .frontPic = gMonFrontPic_Hitmonlee, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Hitmonlee, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Hitmonlee, 64, 56), + .backPic = gMonBackPic_Hitmonlee, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Hitmonlee), - ICON(Hitmonlee, 2), - .footprint = gMonFootprint_Hitmonlee, - LEARNSETS(Hitmonlee), + .palette = gMonPalette_Hitmonlee, + .shinyPalette = gMonShinyPalette_Hitmonlee, + .iconSprite = gMonIcon_Hitmonlee, + .iconPalIndex = 2, + FOOTPRINT(Hitmonlee) + .levelUpLearnset = sHitmonleeLevelUpLearnset, + .teachableLearnset = sHitmonleeTeachableLearnset, }, [SPECIES_HITMONCHAN] = @@ -8047,15 +10606,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 76, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 140, .evYield_SpDefense = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_KEEN_EYE, ABILITY_IRON_FIST, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmonchan"), @@ -8073,17 +10632,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 277, .trainerOffset = 2, - FRONT_PIC(Hitmonchan, 48, 64), + .frontPic = gMonFrontPic_Hitmonchan, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Hitmonchan, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Hitmonchan, 56, 56), + .backPic = gMonBackPic_Hitmonchan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Hitmonchan), - ICON(Hitmonchan, 2), - .footprint = gMonFootprint_Hitmonchan, - LEARNSETS(Hitmonchan), + .palette = gMonPalette_Hitmonchan, + .shinyPalette = gMonShinyPalette_Hitmonchan, + .iconSprite = gMonIcon_Hitmonchan, + .iconPalIndex = 2, + FOOTPRINT(Hitmonchan) + .levelUpLearnset = sHitmonchanLevelUpLearnset, + .teachableLearnset = sHitmonchanTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -8095,15 +10659,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 138, .evYield_SpDefense = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmontop"), @@ -8121,17 +10685,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hitmontop, 64, 56), + .frontPic = gMonFrontPic_Hitmontop, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Hitmontop, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Hitmontop, 64, 56), + .backPic = gMonBackPic_Hitmontop, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Hitmontop), - ICON(Hitmontop, 2), - .footprint = gMonFootprint_Hitmontop, - LEARNSETS(Hitmontop), + .palette = gMonPalette_Hitmontop, + .shinyPalette = gMonShinyPalette_Hitmontop, + .iconSprite = gMonIcon_Hitmontop, + .iconPalIndex = 2, + FOOTPRINT(Hitmontop) + .levelUpLearnset = sHitmontopLevelUpLearnset, + .teachableLearnset = sHitmontopTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HITMONS @@ -8145,15 +10714,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 77, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 77 : 127, .evYield_HP = 2, + .itemRare = ITEM_LAGGING_TAIL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lickitung"), @@ -8171,17 +10741,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lickitung, 64, 56), + .frontPic = gMonFrontPic_Lickitung, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lickitung, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lickitung, 64, 40), + .backPic = gMonBackPic_Lickitung, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Lickitung), - ICON(Lickitung, 0), - .footprint = gMonFootprint_Lickitung, - LEARNSETS(Lickitung), + .palette = gMonPalette_Lickitung, + .shinyPalette = gMonShinyPalette_Lickitung, + .iconSprite = gMonIcon_Lickitung, + .iconPalIndex = 0, + FOOTPRINT(Lickitung) + .levelUpLearnset = sLickitungLevelUpLearnset, + .teachableLearnset = sLickitungTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ROLLOUT, SPECIES_LICKILICKY}), }, @@ -8194,15 +10769,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 80, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 193, .evYield_HP = 3, + .itemRare = ITEM_LAGGING_TAIL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lickilicky"), @@ -8220,17 +10796,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Lickilicky, 64, 64), + .frontPic = gMonFrontPic_Lickilicky, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lickilicky, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lickilicky, 64, 64), + .backPic = gMonBackPic_Lickilicky, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Lickilicky), - ICON(Lickilicky, 1), - .footprint = gMonFootprint_Lickilicky, - LEARNSETS(Lickilicky), + .palette = gMonPalette_Lickilicky, + .shinyPalette = gMonShinyPalette_Lickilicky, + .iconSprite = gMonIcon_Lickilicky, + .iconPalIndex = 1, + FOOTPRINT(Lickilicky) + .levelUpLearnset = sLickilickyLevelUpLearnset, + .teachableLearnset = sLickilickyTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_LICKITUNG @@ -8244,21 +10825,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 60, .baseSpDefense = 45, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 190, - .expYield = 68, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 68 : 114, .evYield_Defense = 1, .itemRare = ITEM_SMOKE_BALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, - #else - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_8 + .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, + #else + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + #endif .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Koffing"), .cryId = CRY_KOFFING, @@ -8275,56 +10856,56 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Koffing, 56, 48), + .frontPic = gMonFrontPic_Koffing, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Koffing, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 14, - BACK_PIC(Koffing, 64, 64), + .backPic = gMonBackPic_Koffing, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW, - PALETTES(Koffing), - ICON(Koffing, 2), - .footprint = gMonFootprint_Koffing, - LEARNSETS(Koffing), + .palette = gMonPalette_Koffing, + .shinyPalette = gMonShinyPalette_Koffing, + .iconSprite = gMonIcon_Koffing, + .iconPalIndex = 2, + FOOTPRINT(Koffing) + .levelUpLearnset = sKoffingLevelUpLearnset, + .teachableLearnset = sKoffingTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_WEEZING}, {EVO_NONE, 0, SPECIES_WEEZING_GALARIAN}), }, -#define WEEZING_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 90, \ - .baseDefense = 120, \ - .baseSpeed = 60, \ - .baseSpAttack = 85, \ - .baseSpDefense = 70, \ - .catchRate = 60, \ - .expYield = 172, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .noFlip = TRUE, \ - .speciesName = _("Weezing"), \ - .cryId = CRY_WEEZING, \ - .natDexNum = NATIONAL_DEX_WEEZING, \ - .categoryName = _("Poison Gas"), \ - .footprint = gMonFootprint_Weezing, \ - .formSpeciesIdTable = sWeezingFormSpeciesIdTable - [SPECIES_WEEZING] = { - WEEZING_MISC_INFO, - .types = { TYPE_POISON, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 120, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 173, + .evYield_Defense = 2, .itemRare = ITEM_SMOKE_BALL, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, - #else - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, - #endif + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_8 + .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, + #else + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + #endif .bodyColor = BODY_COLOR_PURPLE, + .noFlip = TRUE, + .speciesName = _("Weezing"), + .cryId = CRY_WEEZING, + .natDexNum = NATIONAL_DEX_WEEZING, + .categoryName = _("Poison Gas"), .height = 12, .weight = 95, .description = COMPOUND_STRING( @@ -8336,27 +10917,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weezing, 64, 64), + .frontPic = gMonFrontPic_Weezing, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Weezing, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 3, - BACK_PIC(Weezing, 64, 48), + .backPic = gMonBackPic_Weezing, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW, - PALETTES(Weezing), - ICON(Weezing, 2), - LEARNSETS(Weezing), + .palette = gMonPalette_Weezing, + .shinyPalette = gMonShinyPalette_Weezing, + .iconSprite = gMonIcon_Weezing, + .iconPalIndex = 2, + FOOTPRINT(Weezing) + .levelUpLearnset = sWeezingLevelUpLearnset, + .teachableLearnset = sWeezingTeachableLearnset, + .formSpeciesIdTable = sWeezingFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_WEEZING_GALARIAN] = { - WEEZING_MISC_INFO, - .types = { TYPE_POISON, TYPE_FAIRY }, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 120, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_POISON, TYPE_FAIRY), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 173, + .evYield_Defense = 2, + .itemRare = ITEM_MISTY_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_MISTY_SURGE }, .bodyColor = BODY_COLOR_GRAY, - .isGalarianForm = TRUE, + .noFlip = TRUE, + .speciesName = _("Weezing"), + .cryId = CRY_WEEZING, + .natDexNum = NATIONAL_DEX_WEEZING, + .categoryName = _("Poison Gas"), .height = 30, .weight = 160, .description = COMPOUND_STRING( @@ -8368,17 +10974,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WeezingGalarian, 64, 64), + .frontPic = gMonFrontPic_WeezingGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WeezingGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(WeezingGalarian, 64, 64), + .backPic = gMonBackPic_WeezingGalarian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WeezingGalarian), - ICON(WeezingGalarian, 1), - LEARNSETS(WeezingGalarian), + .palette = gMonPalette_WeezingGalarian, + .shinyPalette = gMonShinyPalette_WeezingGalarian, + .iconSprite = gMonIcon_WeezingGalarian, + .iconPalIndex = 1, + FOOTPRINT(Weezing) + .isGalarianForm = TRUE, + .levelUpLearnset = sWeezingGalarianLevelUpLearnset, + .teachableLearnset = sWeezingGalarianTeachableLearnset, + .formSpeciesIdTable = sWeezingFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING @@ -8392,15 +11006,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 120, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 135, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhyhorn"), @@ -8418,19 +11032,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rhyhorn, 56, 40), - FRONT_PIC_FEMALE(Rhyhorn, 56, 40), + .frontPic = gMonFrontPic_Rhyhorn, + .frontPicFemale = gMonFrontPic_RhyhornF, + .frontPicSize = MON_COORDS_SIZE(56, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Rhyhorn, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Rhyhorn, 64, 48), - BACK_PIC_FEMALE(Rhyhorn, 64, 48), + .backPic = gMonBackPic_Rhyhorn, + .backPicFemale = gMonBackPic_RhyhornF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rhyhorn), - ICON(Rhyhorn, 1), - .footprint = gMonFootprint_Rhyhorn, - LEARNSETS(Rhyhorn), + .palette = gMonPalette_Rhyhorn, + .shinyPalette = gMonShinyPalette_Rhyhorn, + .iconSprite = gMonIcon_Rhyhorn, + .iconPalIndex = 1, + FOOTPRINT(Rhyhorn) + .levelUpLearnset = sRhyhornLevelUpLearnset, + .teachableLearnset = sRhyhornTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_RHYDON}), }, @@ -8442,15 +11063,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 204, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhydon"), @@ -8468,20 +11089,28 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 299, .trainerOffset = 2, - FRONT_PIC(Rhydon, 64, 56), - FRONT_PIC_FEMALE(Rhydon, 64, 56), + .frontPic = gMonFrontPic_Rhydon, + .frontPicFemale = gMonFrontPic_RhydonF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rhydon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Rhydon, 64, 56), - BACK_PIC_FEMALE(Rhydon, 64, 56), + .backPic = gMonBackPic_Rhydon, + .backPicFemale = gMonBackPic_RhydonF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rhydon), - ICON(Rhydon, 1), - .footprint = gMonFootprint_Rhydon, - LEARNSETS(Rhydon), - .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_RHYPERIOR}), + .palette = gMonPalette_Rhydon, + .shinyPalette = gMonShinyPalette_Rhydon, + .iconSprite = gMonIcon_Rhydon, + .iconPalIndex = 1, + FOOTPRINT(Rhydon) + .levelUpLearnset = sRhydonLevelUpLearnset, + .teachableLearnset = sRhydonTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}, + {EVO_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}), }, #if P_GEN_4_CROSS_EVOS @@ -8493,15 +11122,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 217, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_SOLID_ROCK, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhyperior"), @@ -8519,19 +11154,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Rhyperior, 64, 64), - FRONT_PIC_FEMALE(Rhyperior, 64, 64), + .frontPic = gMonFrontPic_Rhyperior, + .frontPicFemale = gMonFrontPic_RhyperiorF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Rhyperior, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Rhyperior, 64, 64), - BACK_PIC_FEMALE(Rhyperior, 64, 64), + .backPic = gMonBackPic_Rhyperior, + .backPicFemale = gMonBackPic_RhyperiorF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Rhyperior), - ICON(Rhyperior, 0), - .footprint = gMonFootprint_Rhyperior, - LEARNSETS(Rhyperior), + .palette = gMonPalette_Rhyperior, + .shinyPalette = gMonShinyPalette_Rhyperior, + .iconSprite = gMonIcon_Rhyperior, + .iconPalIndex = 0, + FOOTPRINT(Rhyperior) + .levelUpLearnset = sRhyperiorLevelUpLearnset, + .teachableLearnset = sRhyperiorTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RHYHORN @@ -8546,15 +11188,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 15, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 130, - .expYield = 110, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 110 : 255, .evYield_HP = 1, + .itemCommon = ITEM_OVAL_STONE, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Happiny"), @@ -8572,18 +11215,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Happiny, 32, 48), + .frontPic = gMonFrontPic_Happiny, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Happiny, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Happiny, 48, 56), + .backPic = gMonBackPic_Happiny, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Happiny), - ICON(Happiny, 0), - .footprint = gMonFootprint_Happiny, - LEARNSETS(Happiny), - .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CHANSEY}), + .palette = gMonPalette_Happiny, + .shinyPalette = gMonShinyPalette_Happiny, + .iconSprite = gMonIcon_Happiny, + .iconPalIndex = 0, + FOOTPRINT(Happiny) + .levelUpLearnset = sHappinyLevelUpLearnset, + .teachableLearnset = sHappinyTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}, + {EVO_ITEM_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}), }, #endif //P_GEN_4_CROSS_EVOS @@ -8595,16 +11244,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 105, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 395, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 395 : 255, .evYield_HP = 2, .itemCommon = ITEM_LUCKY_PUNCH, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Chansey"), @@ -8622,17 +11271,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chansey, 56, 48), + .frontPic = gMonFrontPic_Chansey, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Chansey, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chansey, 64, 48), + .backPic = gMonBackPic_Chansey, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chansey), - ICON(Chansey, 0), - .footprint = gMonFootprint_Chansey, - LEARNSETS(Chansey), + .palette = gMonPalette_Chansey, + .shinyPalette = gMonShinyPalette_Chansey, + .iconSprite = gMonIcon_Chansey, + .iconPalIndex = 0, + FOOTPRINT(Chansey) + .levelUpLearnset = sChanseyLevelUpLearnset, + .teachableLearnset = sChanseyTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}), }, @@ -8645,16 +11299,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 135, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 608, - .evYield_HP = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 608 : 255, + .evYield_HP = (P_UPDATED_EVS >= GEN_4) ? 3 : 2, .itemRare = ITEM_LUCKY_EGG, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Blissey"), @@ -8672,17 +11326,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 310, .trainerOffset = 3, - FRONT_PIC(Blissey, 56, 56), + .frontPic = gMonFrontPic_Blissey, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Blissey, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Blissey, 64, 32), + .backPic = gMonBackPic_Blissey, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Blissey), - ICON(Blissey, 0), - .footprint = gMonFootprint_Blissey, - LEARNSETS(Blissey), + .palette = gMonPalette_Blissey, + .shinyPalette = gMonShinyPalette_Blissey, + .iconSprite = gMonIcon_Blissey, + .iconPalIndex = 0, + FOOTPRINT(Blissey) + .levelUpLearnset = sBlisseyLevelUpLearnset, + .teachableLearnset = sBlisseyTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_CHANSEY @@ -8696,15 +11355,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 100, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 87, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 87 : 166, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tangela"), @@ -8722,17 +11381,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tangela, 48, 40), + .frontPic = gMonFrontPic_Tangela, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Tangela, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Tangela, 64, 40), + .backPic = gMonBackPic_Tangela, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Tangela), - ICON(Tangela, 0), - .footprint = gMonFootprint_Tangela, - LEARNSETS(Tangela), + .palette = gMonPalette_Tangela, + .shinyPalette = gMonShinyPalette_Tangela, + .iconSprite = gMonIcon_Tangela, + .iconPalIndex = 0, + FOOTPRINT(Tangela) + .levelUpLearnset = sTangelaLevelUpLearnset, + .teachableLearnset = sTangelaTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_TANGROWTH}), }, @@ -8745,15 +11409,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 110, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 30, - .expYield = 187, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 211, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tangrowth"), @@ -8771,104 +11435,137 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Tangrowth, 64, 64), - FRONT_PIC_FEMALE(Tangrowth, 64, 64), + .frontPic = gMonFrontPic_Tangrowth, + .frontPicFemale = gMonFrontPic_TangrowthF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Tangrowth, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Tangrowth, 64, 56), + .backPic = gMonBackPic_Tangrowth, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW, - PALETTES(Tangrowth), - ICON(Tangrowth, 0), - .footprint = gMonFootprint_Tangrowth, - LEARNSETS(Tangrowth), + .palette = gMonPalette_Tangrowth, + .shinyPalette = gMonShinyPalette_Tangrowth, + .iconSprite = gMonIcon_Tangrowth, + .iconPalIndex = 0, + FOOTPRINT(Tangrowth) + .levelUpLearnset = sTangrowthLevelUpLearnset, + .teachableLearnset = sTangrowthTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TANGELA #if P_FAMILY_KANGASKHAN -#define KANGASKHAN_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .evYield_HP = 2, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Kangaskhan"), \ - .natDexNum = NATIONAL_DEX_KANGASKHAN, \ - .categoryName = _("Parent"), \ - .height = 22, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 387, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Kangaskhan, \ - LEARNSETS(Kangaskhan), \ - .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, \ - .formChangeTable = sKangaskhanFormChangeTable - [SPECIES_KANGASKHAN] = { - KANGASKHAN_MISC_INFO, .baseHP = 105, .baseAttack = 95, .baseDefense = 80, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 80, - .expYield = 172, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 175, + .evYield_HP = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_EARLY_BIRD, ABILITY_SCRAPPY, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Kangaskhan"), .cryId = CRY_KANGASKHAN, + .natDexNum = NATIONAL_DEX_KANGASKHAN, + .categoryName = _("Parent"), + .height = 22, .weight = 800, .description = COMPOUND_STRING( "If you come across a young Kangaskhan\n" "playing by itself, never try to catch it.\n" "The baby's parent is sure to be in the area,\n" "and it will become violently enraged."), - FRONT_PIC(Kangaskhan, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Kangaskhan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Kangaskhan, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Kangaskhan, 64, 56), + .backPic = gMonBackPic_Kangaskhan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Kangaskhan), - ICON(Kangaskhan, 2), + .palette = gMonPalette_Kangaskhan, + .shinyPalette = gMonShinyPalette_Kangaskhan, + .iconSprite = gMonIcon_Kangaskhan, + .iconPalIndex = 2, + FOOTPRINT(Kangaskhan) + .levelUpLearnset = sKangaskhanLevelUpLearnset, + .teachableLearnset = sKangaskhanTeachableLearnset, + .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, + .formChangeTable = sKangaskhanFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_KANGASKHAN_MEGA] = { - KANGASKHAN_MISC_INFO, .baseHP = 105, .baseAttack = 125, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 60, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, .expYield = 207, + .evYield_HP = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Kangaskhan"), .cryId = CRY_KANGASKHAN_MEGA, + .natDexNum = NATIONAL_DEX_KANGASKHAN, + .categoryName = _("Parent"), + .height = 22, .weight = 1000, .description = COMPOUND_STRING( "When the mother sees the back of her\n" "Mega-Evolved child, it makes her think\n" "of the day when her child will inevitably\n" "leave her."), - FRONT_PIC(KangaskhanMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_KangaskhanMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KangaskhanMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KangaskhanMega, 64, 56), + .backPic = gMonBackPic_KangaskhanMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(KangaskhanMega), - ICON(KangaskhanMega, 2), + .palette = gMonPalette_KangaskhanMega, + .shinyPalette = gMonShinyPalette_KangaskhanMega, + .iconSprite = gMonIcon_KangaskhanMega, + .iconPalIndex = 2, + FOOTPRINT(Kangaskhan) + .isMegaEvolution = TRUE, + .levelUpLearnset = sKangaskhanLevelUpLearnset, + .teachableLearnset = sKangaskhanTeachableLearnset, + .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, + .formChangeTable = sKangaskhanFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_KANGASKHAN @@ -8882,16 +11579,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 83, .evYield_SpAttack = 1, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Horsea"), @@ -8909,17 +11606,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Horsea, 32, 40), + .frontPic = gMonFrontPic_Horsea, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Horsea, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Horsea, 48, 40), + .backPic = gMonBackPic_Horsea, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Horsea), - ICON(Horsea, 0), - .footprint = gMonFootprint_Horsea, - LEARNSETS(Horsea), + .palette = gMonPalette_Horsea, + .shinyPalette = gMonShinyPalette_Horsea, + .iconSprite = gMonIcon_Horsea, + .iconPalIndex = 0, + FOOTPRINT(Horsea) + .levelUpLearnset = sHorseaLevelUpLearnset, + .teachableLearnset = sHorseaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEADRA}), }, @@ -8931,9 +11633,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 155, .evYield_Defense = 1, .evYield_SpAttack = 1, .itemRare = ITEM_DRAGON_SCALE, @@ -8941,7 +11643,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Seadra"), @@ -8959,17 +11661,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seadra, 64, 56), + .frontPic = gMonFrontPic_Seadra, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Seadra, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Seadra, 64, 56), + .backPic = gMonBackPic_Seadra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Seadra), - ICON(Seadra, 0), - .footprint = gMonFootprint_Seadra, - LEARNSETS(Seadra), + .palette = gMonPalette_Seadra, + .shinyPalette = gMonShinyPalette_Seadra, + .iconSprite = gMonIcon_Seadra, + .iconPalIndex = 0, + FOOTPRINT(Seadra) + .levelUpLearnset = sSeadraLevelUpLearnset, + .teachableLearnset = sSeadraTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}, {EVO_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}), }, @@ -8983,9 +11690,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 207, + #endif .evYield_Attack = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, @@ -8994,7 +11707,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Kingdra"), @@ -9012,17 +11725,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 287, .trainerOffset = 0, - FRONT_PIC(Kingdra, 64, 64), + .frontPic = gMonFrontPic_Kingdra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Kingdra, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Kingdra, 64, 56), + .backPic = gMonBackPic_Kingdra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Kingdra), - ICON(Kingdra, 0), - .footprint = gMonFootprint_Kingdra, - LEARNSETS(Kingdra), + .palette = gMonPalette_Kingdra, + .shinyPalette = gMonShinyPalette_Kingdra, + .iconSprite = gMonIcon_Kingdra, + .iconPalIndex = 0, + FOOTPRINT(Kingdra) + .levelUpLearnset = sKingdraLevelUpLearnset, + .teachableLearnset = sKingdraTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HORSEA @@ -9036,16 +11754,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 63, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 111, .evYield_Attack = 1, .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Goldeen"), @@ -9063,19 +11781,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Goldeen, 64, 40), - FRONT_PIC_FEMALE(Goldeen, 64, 40), + .frontPic = gMonFrontPic_Goldeen, + .frontPicFemale = gMonFrontPic_GoldeenF, + .frontPicSize = MON_COORDS_SIZE(64, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Goldeen, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Goldeen, 64, 48), - BACK_PIC_FEMALE(Goldeen, 64, 48), + .backPic = gMonBackPic_Goldeen, + .backPicFemale = gMonBackPic_GoldeenF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Goldeen), - ICON(Goldeen, 0), - .footprint = gMonFootprint_Goldeen, - LEARNSETS(Goldeen), + .palette = gMonPalette_Goldeen, + .shinyPalette = gMonShinyPalette_Goldeen, + .iconSprite = gMonIcon_Goldeen, + .iconPalIndex = 0, + FOOTPRINT(Goldeen) + .levelUpLearnset = sGoldeenLevelUpLearnset, + .teachableLearnset = sGoldeenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_SEAKING}), }, @@ -9087,16 +11812,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 68, .baseSpAttack = 65, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 170, .evYield_Attack = 2, .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Seaking"), @@ -9114,19 +11839,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seaking, 64, 56), - FRONT_PIC_FEMALE(Seaking, 64, 56), + .frontPic = gMonFrontPic_Seaking, + .frontPicFemale = gMonFrontPic_SeakingF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Seaking, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Seaking, 64, 56), - BACK_PIC_FEMALE(Seaking, 64, 56), + .backPic = gMonBackPic_Seaking, + .backPicFemale = gMonBackPic_SeakingF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Seaking), - ICON(Seaking, 0), - .footprint = gMonFootprint_Seaking, - LEARNSETS(Seaking), + .palette = gMonPalette_Seaking, + .shinyPalette = gMonShinyPalette_Seaking, + .iconSprite = gMonIcon_Seaking, + .iconPalIndex = 0, + FOOTPRINT(Seaking) + .levelUpLearnset = sSeakingLevelUpLearnset, + .teachableLearnset = sSeakingTeachableLearnset, }, #endif //P_FAMILY_GOLDEEN @@ -9139,9 +11871,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 68, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 68 : 106, .evYield_Speed = 1, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_STAR_PIECE, @@ -9149,7 +11881,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -9168,17 +11900,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staryu, 40, 48), + .frontPic = gMonFrontPic_Staryu, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Staryu, .frontAnimId = ANIM_TWIST_TWICE, - BACK_PIC(Staryu, 56, 56), + .backPic = gMonBackPic_Staryu, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Staryu), - ICON(Staryu, 2), - .footprint = gMonFootprint_Staryu, - LEARNSETS(Staryu), + .palette = gMonPalette_Staryu, + .shinyPalette = gMonShinyPalette_Staryu, + .iconSprite = gMonIcon_Staryu, + .iconPalIndex = 2, + FOOTPRINT(Staryu) + .levelUpLearnset = sStaryuLevelUpLearnset, + .teachableLearnset = sStaryuTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}), }, @@ -9190,9 +11927,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 115, .baseSpAttack = 100, .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 60, - .expYield = 182, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 182 : 207, .evYield_Speed = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_STAR_PIECE, @@ -9200,7 +11937,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Starmie"), @@ -9218,17 +11955,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Starmie, 56, 56), + .frontPic = gMonFrontPic_Starmie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Starmie, .frontAnimId = ANIM_TWIST, - BACK_PIC(Starmie, 64, 64), + .backPic = gMonBackPic_Starmie, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Starmie), - ICON(Starmie, 2), - .footprint = gMonFootprint_Starmie, - LEARNSETS(Starmie), + .palette = gMonPalette_Starmie, + .shinyPalette = gMonShinyPalette_Starmie, + .iconSprite = gMonIcon_Starmie, + .iconPalIndex = 2, + FOOTPRINT(Starmie) + .levelUpLearnset = sStarmieLevelUpLearnset, + .teachableLearnset = sStarmieTeachableLearnset, }, #endif //P_FAMILY_STARYU @@ -9242,19 +11984,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 90, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_PSYCHIC), + #endif .catchRate = 145, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 78, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Mime Jr."), @@ -9272,53 +12014,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MimeJr, 32, 56), + .frontPic = gMonFrontPic_MimeJr, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MimeJr, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(MimeJr, 64, 64), + .backPic = gMonBackPic_MimeJr, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(MimeJr), - ICON(MimeJr, 0), - .footprint = gMonFootprint_MimeJr, - LEARNSETS(MimeJr), + .palette = gMonPalette_MimeJr, + .shinyPalette = gMonShinyPalette_MimeJr, + .iconSprite = gMonIcon_MimeJr, + .iconPalIndex = 0, + FOOTPRINT(MimeJr) + .levelUpLearnset = sMimeJrLevelUpLearnset, + .teachableLearnset = sMimeJrTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_MR_MIME}, {EVO_NONE, 0, SPECIES_MR_MIME_GALARIAN}), }, #endif //P_GEN_4_CROSS_EVOS -#define MR_MIME_MISC_INFO \ - .catchRate = 45, \ - .expYield = 161, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .speciesName = _("Mr. Mime"), \ - .cryId = CRY_MR_MIME, \ - .natDexNum = NATIONAL_DEX_MR_MIME, \ - .footprint = gMonFootprint_MrMime, \ - .formSpeciesIdTable = sMrMimeFormSpeciesIdTable - [SPECIES_MR_MIME] = { - MR_MIME_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 65, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 120, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - #endif + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 136, .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Mr. Mime"), + .cryId = CRY_MR_MIME, + .natDexNum = NATIONAL_DEX_MR_MIME, .categoryName = _("Barrier"), .height = 13, .weight = 545, @@ -9331,32 +12069,48 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MrMime, 56, 56), + .frontPic = gMonFrontPic_MrMime, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_MrMime, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(MrMime, 64, 48), + .backPic = gMonBackPic_MrMime, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(MrMime), - ICON(MrMime, 0), - LEARNSETS(MrMime), + .palette = gMonPalette_MrMime, + .shinyPalette = gMonShinyPalette_MrMime, + .iconSprite = gMonIcon_MrMime, + .iconPalIndex = 0, + FOOTPRINT(MrMime) + .levelUpLearnset = sMrMimeLevelUpLearnset, + .teachableLearnset = sMrMimeTeachableLearnset, + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_MR_MIME_GALARIAN] = { - MR_MIME_MISC_INFO, .baseHP = 50, .baseAttack = 65, .baseDefense = 65, .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 136, .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Mr. Mime"), + .cryId = CRY_MR_MIME, + .natDexNum = NATIONAL_DEX_MR_MIME, .categoryName = _("Dancing"), .height = 14, .weight = 568, @@ -9369,17 +12123,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MrMimeGalarian, 56, 56), + .frontPic = gMonFrontPic_MrMimeGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_MrMimeGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MrMimeGalarian, 64, 48), + .backPic = gMonBackPic_MrMimeGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MrMimeGalarian), - ICON(MrMimeGalarian, 0), - LEARNSETS(MrMimeGalarian), + .palette = gMonPalette_MrMimeGalarian, + .shinyPalette = gMonShinyPalette_MrMimeGalarian, + .iconSprite = gMonIcon_MrMimeGalarian, + .iconPalIndex = 0, + FOOTPRINT(MrMime) .isGalarianForm = TRUE, + .levelUpLearnset = sMrMimeGalarianLevelUpLearnset, + .teachableLearnset = sMrMimeGalarianTeachableLearnset, + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_MR_RIME}), }, @@ -9391,7 +12152,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 110, .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, .expYield = 182, .evYield_SpAttack = 3, @@ -9399,7 +12160,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TANGLED_FEET, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mr. Rime"), @@ -9416,17 +12177,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(MrRime, 56, 64), + .frontPic = gMonFrontPic_MrRime, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_MrRime, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MrRime, 64, 56), + .backPic = gMonBackPic_MrRime, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MrRime), - ICON(MrRime, 0), - .footprint = gMonFootprint_MrRime, - LEARNSETS(MrRime), + .palette = gMonPalette_MrRime, + .shinyPalette = gMonShinyPalette_MrRime, + .iconSprite = gMonIcon_MrRime, + .iconPalIndex = 0, + FOOTPRINT(MrRime) + .levelUpLearnset = sMrRimeLevelUpLearnset, + .teachableLearnset = sMrRimeTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MR_MIME @@ -9440,15 +12206,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, - .expYield = 100, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 100 : 187, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Scyther"), @@ -9466,55 +12232,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Scyther, 56, 64), - FRONT_PIC_FEMALE(Scyther, 56, 64), + .frontPic = gMonFrontPic_Scyther, + .frontPicFemale = gMonFrontPic_ScytherF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Scyther, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 10, - BACK_PIC(Scyther, 64, 64), + .backPic = gMonBackPic_Scyther, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Scyther), - ICON(Scyther, 1), - .footprint = gMonFootprint_Scyther, - LEARNSETS(Scyther), + .palette = gMonPalette_Scyther, + .shinyPalette = gMonShinyPalette_Scyther, + .iconSprite = gMonIcon_Scyther, + .iconPalIndex = 1, + FOOTPRINT(Scyther) + .levelUpLearnset = sScytherLevelUpLearnset, + .teachableLearnset = sScytherTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}, {EVO_ITEM, ITEM_BLACK_AUGURITE, SPECIES_KLEAVOR}, {EVO_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}), }, #if P_GEN_2_CROSS_EVOS -#define SCIZOR_MISC_INFO \ - .types = { TYPE_BUG, TYPE_STEEL }, \ - .catchRate = 25, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Scizor"), \ - .natDexNum = NATIONAL_DEX_SCIZOR, \ - .categoryName = _("Pincer"), \ - .footprint = gMonFootprint_Scizor, \ - LEARNSETS(Scizor), \ - .formSpeciesIdTable = sScizorFormSpeciesIdTable,\ - .formChangeTable = sScizorFormChangeTable - [SPECIES_SCIZOR] = { - SCIZOR_MISC_INFO, .baseHP = 70, .baseAttack = 130, .baseDefense = 100, .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 80, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_LIGHT_METAL }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Scizor"), .cryId = CRY_SCIZOR, + .natDexNum = NATIONAL_DEX_SCIZOR, + .categoryName = _("Pincer"), .height = 18, .weight = 1180, .description = COMPOUND_STRING( @@ -9526,33 +12291,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scizor, 64, 64), - FRONT_PIC_FEMALE(Scizor, 64, 64), + .frontPic = gMonFrontPic_Scizor, + .frontPicFemale = gMonFrontPic_ScizorF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Scizor, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 19, - BACK_PIC(Scizor, 64, 56), + .backPic = gMonBackPic_Scizor, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Scizor), - ICON(Scizor, 0), + .palette = gMonPalette_Scizor, + .shinyPalette = gMonShinyPalette_Scizor, + .iconSprite = gMonIcon_Scizor, + .iconPalIndex = 0, + FOOTPRINT(Scizor) + .levelUpLearnset = sScizorLevelUpLearnset, + .teachableLearnset = sScizorTeachableLearnset, + .formSpeciesIdTable = sScizorFormSpeciesIdTable, + .formChangeTable = sScizorFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SCIZOR_MEGA] = { - SCIZOR_MISC_INFO, .baseHP = 70, .baseAttack = 150, .baseDefense = 140, .baseSpeed = 75, .baseSpAttack = 65, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 25, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_TECHNICIAN, ABILITY_TECHNICIAN, ABILITY_TECHNICIAN }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Scizor"), .cryId = CRY_SCIZOR_MEGA, + .natDexNum = NATIONAL_DEX_SCIZOR, + .categoryName = _("Pincer"), .height = 20, .weight = 1250, .description = COMPOUND_STRING( @@ -9564,15 +12349,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ScizorMega, 64, 64), + .frontPic = gMonFrontPic_ScizorMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ScizorMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ScizorMega, 64, 56), + .backPic = gMonBackPic_ScizorMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(ScizorMega), - ICON(ScizorMega, 0), + .palette = gMonPalette_ScizorMega, + .shinyPalette = gMonShinyPalette_ScizorMega, + .iconSprite = gMonIcon_ScizorMega, + .iconPalIndex = 0, + FOOTPRINT(Scizor) + .isMegaEvolution = TRUE, + .levelUpLearnset = sScizorLevelUpLearnset, + .teachableLearnset = sScizorTeachableLearnset, + .formSpeciesIdTable = sScizorFormSpeciesIdTable, + .formChangeTable = sScizorFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_2_CROSS_EVOS @@ -9586,7 +12381,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 45, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 15, .expYield = 175, .evYield_Attack = 3, @@ -9594,7 +12389,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHEER_FORCE, ABILITY_SHARPNESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kleavor"), @@ -9612,17 +12407,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Kleavor, 64, 64), + .frontPic = gMonFrontPic_Kleavor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kleavor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kleavor, 64, 56), + .backPic = gMonBackPic_Kleavor, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kleavor), - ICON(Kleavor, 2), - //.footprint = gMonFootprint_Kleavor, - LEARNSETS(Kleavor), + .palette = gMonPalette_Kleavor, + .shinyPalette = gMonShinyPalette_Kleavor, + .iconSprite = gMonIcon_Kleavor, + .iconPalIndex = 2, + //FOOTPRINT(Kleavor) + .levelUpLearnset = sKleavorLevelUpLearnset, + .teachableLearnset = sKleavorTeachableLearnset, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_SCYTHER @@ -9637,15 +12437,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 87, .evYield_SpAttack = 1, .genderRatio = MON_FEMALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Smoochum"), @@ -9663,18 +12463,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smoochum, 32, 40), + .frontPic = gMonFrontPic_Smoochum, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Smoochum, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, - BACK_PIC(Smoochum, 40, 48), + .backPic = gMonBackPic_Smoochum, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Smoochum), - ICON(Smoochum, 1), - .footprint = gMonFootprint_Smoochum, - LEARNSETS(Smoochum), + .palette = gMonPalette_Smoochum, + .shinyPalette = gMonShinyPalette_Smoochum, + .iconSprite = gMonIcon_Smoochum, + .iconPalIndex = 1, + FOOTPRINT(Smoochum) + .levelUpLearnset = sSmoochumLevelUpLearnset, + .teachableLearnset = sSmoochumTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_JYNX}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9687,15 +12492,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 137, .evYield_SpAttack = 2, .genderRatio = MON_FEMALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_DRY_SKIN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Jynx"), @@ -9713,17 +12518,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 300, .trainerOffset = 1, - FRONT_PIC(Jynx, 64, 48), + .frontPic = gMonFrontPic_Jynx, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jynx, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Jynx, 56, 64), + .backPic = gMonBackPic_Jynx, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Jynx), - ICON(Jynx, 2), - .footprint = gMonFootprint_Jynx, - LEARNSETS(Jynx), + .palette = gMonPalette_Jynx, + .shinyPalette = gMonShinyPalette_Jynx, + .iconSprite = gMonIcon_Jynx, + .iconPalIndex = 2, + FOOTPRINT(Jynx) + .levelUpLearnset = sJynxLevelUpLearnset, + .teachableLearnset = sJynxTeachableLearnset, }, #endif //P_FAMILY_JYNX @@ -9737,15 +12547,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 106, .evYield_Speed = 1, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, @@ -9764,17 +12575,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Elekid, 48, 40), + .frontPic = gMonFrontPic_Elekid, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Elekid, .frontAnimId = ANIM_FLASH_YELLOW, - BACK_PIC(Elekid, 64, 48), + .backPic = gMonBackPic_Elekid, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Elekid), - ICON(Elekid, 1), - .footprint = gMonFootprint_Elekid, - LEARNSETS(Elekid), + .palette = gMonPalette_Elekid, + .shinyPalette = gMonShinyPalette_Elekid, + .iconSprite = gMonIcon_Elekid, + .iconPalIndex = 1, + FOOTPRINT(Elekid) + .levelUpLearnset = sElekidLevelUpLearnset, + .teachableLearnset = sElekidTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTABUZZ}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9787,15 +12603,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 156, .evYield_Speed = 2, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, @@ -9814,18 +12631,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Electabuzz, 64, 64), + .frontPic = gMonFrontPic_Electabuzz, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Electabuzz, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - BACK_PIC(Electabuzz, 64, 64), + .backPic = gMonBackPic_Electabuzz, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Electabuzz), - ICON(Electabuzz, 1), - .footprint = gMonFootprint_Electabuzz, - LEARNSETS(Electabuzz), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ELECTIVIRE}), + .palette = gMonPalette_Electabuzz, + .shinyPalette = gMonShinyPalette_Electabuzz, + .iconSprite = gMonIcon_Electabuzz, + .iconPalIndex = 1, + FOOTPRINT(Electabuzz) + .levelUpLearnset = sElectabuzzLevelUpLearnset, + .teachableLearnset = sElectabuzzTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}, + {EVO_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}), }, #if P_GEN_4_CROSS_EVOS @@ -9837,15 +12660,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 199, + #endif .evYield_Attack = 3, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_MOTOR_DRIVE, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Electivire"), @@ -9863,17 +12693,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Electivire, 64, 64), + .frontPic = gMonFrontPic_Electivire, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Electivire, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Electivire, 64, 48), + .backPic = gMonBackPic_Electivire, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Electivire), - ICON(Electivire, 1), - .footprint = gMonFootprint_Electivire, - LEARNSETS(Electivire), + .palette = gMonPalette_Electivire, + .shinyPalette = gMonShinyPalette_Electivire, + .iconSprite = gMonIcon_Electivire, + .iconPalIndex = 1, + FOOTPRINT(Electivire) + .levelUpLearnset = sElectivireLevelUpLearnset, + .teachableLearnset = sElectivireTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ELECTABUZZ @@ -9888,15 +12723,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 83, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 73, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 73 : 117, .evYield_Speed = 1, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -9915,17 +12751,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magby, 32, 48), + .frontPic = gMonFrontPic_Magby, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Magby, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Magby, 40, 48), + .backPic = gMonBackPic_Magby, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magby), - ICON(Magby, 0), - .footprint = gMonFootprint_Magby, - LEARNSETS(Magby), + .palette = gMonPalette_Magby, + .shinyPalette = gMonShinyPalette_Magby, + .iconSprite = gMonIcon_Magby, + .iconPalIndex = 0, + FOOTPRINT(Magby) + .levelUpLearnset = sMagbyLevelUpLearnset, + .teachableLearnset = sMagbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGMAR}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9938,15 +12779,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 93, .baseSpAttack = 100, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 167, .evYield_SpAttack = 2, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Magmar"), @@ -9964,18 +12806,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magmar, 64, 56), + .frontPic = gMonFrontPic_Magmar, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magmar, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Magmar, 64, 64), + .backPic = gMonBackPic_Magmar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magmar), - ICON(Magmar, 0), - .footprint = gMonFootprint_Magmar, - LEARNSETS(Magmar), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_MAGMORTAR}), + .palette = gMonPalette_Magmar, + .shinyPalette = gMonShinyPalette_Magmar, + .iconSprite = gMonIcon_Magmar, + .iconPalIndex = 0, + FOOTPRINT(Magmar) + .levelUpLearnset = sMagmarLevelUpLearnset, + .teachableLearnset = sMagmarTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}, + {EVO_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}), }, #if P_GEN_4_CROSS_EVOS @@ -9987,15 +12835,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 83, .baseSpAttack = 125, .baseSpDefense = 95, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 199, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -10014,52 +12869,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Magmortar, 64, 64), + .frontPic = gMonFrontPic_Magmortar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Magmortar, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Magmortar, 64, 56), + .backPic = gMonBackPic_Magmortar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magmortar), - ICON(Magmortar, 0), - .footprint = gMonFootprint_Magmortar, - LEARNSETS(Magmortar), + .palette = gMonPalette_Magmortar, + .shinyPalette = gMonShinyPalette_Magmortar, + .iconSprite = gMonIcon_Magmortar, + .iconPalIndex = 0, + FOOTPRINT(Magmortar) + .levelUpLearnset = sMagmortarLevelUpLearnset, + .teachableLearnset = sMagmortarTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGMAR #if P_FAMILY_PINSIR -#define PINSIR_MISC_INFO \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pinsir"), \ - .natDexNum = NATIONAL_DEX_PINSIR, \ - .categoryName = _("Stag Beetle"), \ - .footprint = gMonFootprint_Pinsir, \ - LEARNSETS(Pinsir), \ - .formSpeciesIdTable = sPinsirFormSpeciesIdTable,\ - .formChangeTable = sPinsirFormChangeTable - [SPECIES_PINSIR] = { - PINSIR_MISC_INFO, .baseHP = 65, .baseAttack = 125, .baseDefense = 100, .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_BUG }, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_MOLD_BREAKER, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pinsir"), .cryId = CRY_PINSIR, + .natDexNum = NATIONAL_DEX_PINSIR, + .categoryName = _("Stag Beetle"), .height = 15, .weight = 550, .description = COMPOUND_STRING( @@ -10071,31 +12924,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Pinsir, 64, 64), + .frontPic = gMonFrontPic_Pinsir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Pinsir, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pinsir, 64, 56), + .backPic = gMonBackPic_Pinsir, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Pinsir), - ICON(Pinsir, 2), + .palette = gMonPalette_Pinsir, + .shinyPalette = gMonShinyPalette_Pinsir, + .iconSprite = gMonIcon_Pinsir, + .iconPalIndex = 2, + FOOTPRINT(Pinsir) + .levelUpLearnset = sPinsirLevelUpLearnset, + .teachableLearnset = sPinsirTeachableLearnset, + .formSpeciesIdTable = sPinsirFormSpeciesIdTable, + .formChangeTable = sPinsirFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_PINSIR_MEGA] = { - PINSIR_MISC_INFO, .baseHP = 65, .baseAttack = 155, .baseDefense = 120, .baseSpeed = 105, .baseSpAttack = 65, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pinsir"), .cryId = CRY_PINSIR_MEGA, + .natDexNum = NATIONAL_DEX_PINSIR, + .categoryName = _("Stag Beetle"), .height = 17, .weight = 590, .description = COMPOUND_STRING( @@ -10107,149 +12979,247 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(PinsirMega, 64, 64), + .frontPic = gMonFrontPic_PinsirMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_PinsirMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(PinsirMega, 64, 56), + .backPic = gMonBackPic_PinsirMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(PinsirMega), - ICON(PinsirMega, 2), + .palette = gMonPalette_PinsirMega, + .shinyPalette = gMonShinyPalette_PinsirMega, + .iconSprite = gMonIcon_PinsirMega, + .iconPalIndex = 2, + FOOTPRINT(Pinsir) .isMegaEvolution = TRUE, + .levelUpLearnset = sPinsirLevelUpLearnset, + .teachableLearnset = sPinsirTeachableLearnset, + .formSpeciesIdTable = sPinsirFormSpeciesIdTable, + .formChangeTable = sPinsirFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_PINSIR #if P_FAMILY_TAUROS -#define TAUROS_MISC_INFO \ - .catchRate = 45, \ - .expYield = 172, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Tauros"), \ - .cryId = CRY_TAUROS, \ - .natDexNum = NATIONAL_DEX_TAUROS, \ - .categoryName = _("Wild Bull"), \ - .height = 14, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Tauros, \ - .formSpeciesIdTable = sTaurosFormSpeciesIdTable - [SPECIES_TAUROS] = { - TAUROS_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 95, .baseSpeed = 110, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, .evYield_Attack = 1, .evYield_Speed = 1, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 884, .description = COMPOUND_STRING( "It is not satisfied unless it is rampaging\n" "at all times. If there is no opponent for\n" "Tauros to battle, it will charge at thick\n" "trees and knock them down to calm itself."), - FRONT_PIC(Tauros, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Tauros, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Tauros, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 10, - BACK_PIC(Tauros, 64, 48), + .backPic = gMonBackPic_Tauros, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tauros), - ICON(Tauros, 2), - LEARNSETS(Tauros), + .palette = gMonPalette_Tauros, + .shinyPalette = gMonShinyPalette_Tauros, + .iconSprite = gMonIcon_Tauros, + .iconPalIndex = 2, + FOOTPRINT(Tauros) + .levelUpLearnset = sTaurosLevelUpLearnset, + .teachableLearnset = sTaurosTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, #if P_PALDEAN_FORMS -#define TAUROS_PALDEAN_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 110, \ - .baseDefense = 105, \ - .baseSpeed = 100, \ - .baseSpAttack = 30, \ - .baseSpDefense = 70, \ - .evYield_Attack = 2, \ - .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .frontAnimFrames = sAnims_TaurosPaldean, \ - /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ - .backAnimId = BACK_ANIM_V_SHAKE_LOW, \ - .isPaldeanForm = TRUE - [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 1150, .description = COMPOUND_STRING( "This Pokémon has a muscular body\n" "and excels at close-quarters combat.\n" "It uses its short horns to strike\n" "the opponent’s weak spots."), - FRONT_PIC(TaurosPaldeanCombatBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanCombatBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanCombatBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanCombatBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanCombatBreed), - ICON(TaurosPaldeanCombatBreed, 0), - LEARNSETS(TaurosPaldeanCombatBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanCombatBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanCombatBreed, + .iconSprite = gMonIcon_TaurosPaldeanCombatBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanCombatBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanCombatBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_FIRE }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 850, .description = COMPOUND_STRING( "When heated by fire energy, its horns can\n" "get hotter than 1,800 degrees Fahrenheit.\n" "Those gored by them will suffer\n" "both wounds and burns."), - FRONT_PIC(TaurosPaldeanBlazeBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanBlazeBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanBlazeBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanBlazeBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanBlazeBreed), - ICON(TaurosPaldeanBlazeBreed, 0), - LEARNSETS(TaurosPaldeanBlazeBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanBlazeBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanBlazeBreed, + .iconSprite = gMonIcon_TaurosPaldeanBlazeBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanBlazeBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanBlazeBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_WATER }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 1100, .description = COMPOUND_STRING( "This Pokémon blasts water from holes on\n" "the tips of its horns--the high-pressure\n" "jets pierce right through\n" "Tauros’s enemies."), - FRONT_PIC(TaurosPaldeanAquaBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanAquaBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanAquaBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanAquaBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanAquaBreed), - ICON(TaurosPaldeanAquaBreed, 0), - LEARNSETS(TaurosPaldeanAquaBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanAquaBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanAquaBreed, + .iconSprite = gMonIcon_TaurosPaldeanAquaBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanAquaBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanAquaBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS @@ -10263,15 +13233,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 15, .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 20, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 5, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Magikarp"), @@ -10289,144 +13259,173 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magikarp, 48, 56), - FRONT_PIC_FEMALE(Magikarp, 48, 56), + .frontPic = gMonFrontPic_Magikarp, + .frontPicFemale = gMonFrontPic_MagikarpF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magikarp, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Magikarp, 64, 56), - BACK_PIC_FEMALE(Magikarp, 64, 56), + .backPic = gMonBackPic_Magikarp, + .backPicFemale = gMonBackPic_MagikarpF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Magikarp), - ICON(Magikarp, 0), - .footprint = gMonFootprint_Magikarp, - LEARNSETS(Magikarp), + .palette = gMonPalette_Magikarp, + .shinyPalette = gMonShinyPalette_Magikarp, + .iconSprite = gMonIcon_Magikarp, + .iconPalIndex = 0, + FOOTPRINT(Magikarp) + .tmIlliterate = TRUE, + .levelUpLearnset = sMagikarpLevelUpLearnset, + .teachableLearnset = sMagikarpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_GYARADOS}), }, -#define GYARADOS_MISC_INFO \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 5, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Gyarados"), \ - .natDexNum = NATIONAL_DEX_GYARADOS, \ - .categoryName = _("Atrocious"), \ - .height = 65, \ - .pokemonScale = 256, \ - .pokemonOffset = 6, \ - .trainerScale = 481, \ - .trainerOffset = 13, \ - .footprint = gMonFootprint_Gyarados, \ - LEARNSETS(Gyarados), \ - .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, \ - .formChangeTable = sGyaradosFormChangeTable - [SPECIES_GYARADOS] = { - GYARADOS_MISC_INFO, .baseHP = 95, .baseAttack = 125, .baseDefense = 79, .baseSpeed = 81, .baseSpAttack = 60, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_FLYING }, - .expYield = 189, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 214, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gyarados"), .cryId = CRY_GYARADOS, + .natDexNum = NATIONAL_DEX_GYARADOS, + .categoryName = _("Atrocious"), + .height = 65, .weight = 2350, .description = COMPOUND_STRING( "It is an extremely vicious and violent\n" "Pokémon. When humans begin to fight,\n" "it will appear and burn everything to the\n" "ground with intensely hot flames."), - FRONT_PIC(Gyarados, 64, 64), - FRONT_PIC_FEMALE(Gyarados, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + .frontPic = gMonFrontPic_Gyarados, + .frontPicFemale = gMonFrontPic_GyaradosF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gyarados, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Gyarados, 64, 64), - BACK_PIC_FEMALE(Gyarados, 64, 64), + .backPic = gMonBackPic_Gyarados, + .backPicFemale = gMonBackPic_GyaradosF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Gyarados), - ICON(Gyarados, 0), + .palette = gMonPalette_Gyarados, + .shinyPalette = gMonShinyPalette_Gyarados, + .iconSprite = gMonIcon_Gyarados, + .iconPalIndex = 0, + FOOTPRINT(Gyarados) + .levelUpLearnset = sGyaradosLevelUpLearnset, + .teachableLearnset = sGyaradosTeachableLearnset, + .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, + .formChangeTable = sGyaradosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GYARADOS_MEGA] = { - GYARADOS_MISC_INFO, .baseHP = 95, .baseAttack = 155, .baseDefense = 109, .baseSpeed = 81, .baseSpAttack = 70, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, .expYield = 224, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gyarados"), .cryId = CRY_GYARADOS_MEGA, + .natDexNum = NATIONAL_DEX_GYARADOS, + .categoryName = _("Atrocious"), + .height = 65, .weight = 3050, .description = COMPOUND_STRING( "Although it obeys its instinctive drive to\n" "destroy everything within its reach, it\n" "will respond to orders from a Trainer it\n" "truly trusts."), - FRONT_PIC(GyaradosMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + .frontPic = gMonFrontPic_GyaradosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GyaradosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(GyaradosMega, 64, 64), + .backPic = gMonBackPic_GyaradosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(GyaradosMega), - ICON(GyaradosMega, 0), + .palette = gMonPalette_GyaradosMega, + .shinyPalette = gMonShinyPalette_GyaradosMega, + .iconSprite = gMonIcon_GyaradosMega, + .iconPalIndex = 0, + FOOTPRINT(Gyarados) .isMegaEvolution = TRUE, + .levelUpLearnset = sGyaradosLevelUpLearnset, + .teachableLearnset = sGyaradosTeachableLearnset, + .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, + .formChangeTable = sGyaradosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAGIKARP #if P_FAMILY_LAPRAS -#define LAPRAS_MISC_INFO \ - .baseHP = 130, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 60, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = { TYPE_WATER, TYPE_ICE }, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Lapras"), \ - .cryId = CRY_LAPRAS, \ - .natDexNum = NATIONAL_DEX_LAPRAS, \ - .categoryName = _("Transport"), \ - .footprint = gMonFootprint_Lapras, \ - LEARNSETS(Lapras), \ - .formSpeciesIdTable = sLaprasFormSpeciesIdTable, \ - .formChangeTable = sLaprasFormChangeTable - [SPECIES_LAPRAS] = { - LAPRAS_MISC_INFO, + .baseHP = 130, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 219, + .evYield_HP = 2, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lapras"), + .cryId = CRY_LAPRAS, + .natDexNum = NATIONAL_DEX_LAPRAS, + .categoryName = _("Transport"), .height = 25, .weight = 2200, .description = COMPOUND_STRING( @@ -10438,21 +13437,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Lapras, 64, 64), + .frontPic = gMonFrontPic_Lapras, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lapras, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lapras, 56, 64), + .backPic = gMonBackPic_Lapras, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Lapras), - ICON(Lapras, 2), + .palette = gMonPalette_Lapras, + .shinyPalette = gMonShinyPalette_Lapras, + .iconSprite = gMonIcon_Lapras, + .iconPalIndex = 2, + FOOTPRINT(Lapras) + .levelUpLearnset = sLaprasLevelUpLearnset, + .teachableLearnset = sLaprasTeachableLearnset, + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, + .formChangeTable = sLaprasFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_LAPRAS_GIGANTAMAX] = { - LAPRAS_MISC_INFO, + .baseHP = 130, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 219, + .evYield_HP = 2, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lapras"), + .cryId = CRY_LAPRAS, + .natDexNum = NATIONAL_DEX_LAPRAS, + .categoryName = _("Transport"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -10464,16 +13494,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(LaprasGigantamax, 64, 64), + .frontPic = gMonFrontPic_LaprasGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LaprasGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LaprasGigantamax, 64, 64), + .backPic = gMonBackPic_LaprasGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LaprasGigantamax), - ICON(LaprasGigantamax, 2), + .palette = gMonPalette_LaprasGigantamax, + .shinyPalette = gMonShinyPalette_LaprasGigantamax, + .iconSprite = gMonIcon_LaprasGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Lapras) .isGigantamax = TRUE, + .levelUpLearnset = sLaprasLevelUpLearnset, + .teachableLearnset = sLaprasTeachableLearnset, + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, + .formChangeTable = sLaprasFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS @@ -10487,16 +13526,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 48, .baseSpAttack = 48, .baseSpDefense = 48, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 35, - .expYield = 101, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 101 : 61, .evYield_HP = 1, + .itemCommon = ITEM_QUICK_POWDER, .itemRare = ITEM_METAL_POWDER, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DITTO), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ditto"), @@ -10514,79 +13554,87 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ditto, 40, 40), + .frontPic = gMonFrontPic_Ditto, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Ditto, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Ditto, 48, 32), + .backPic = gMonBackPic_Ditto, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Ditto), - ICON(Ditto, 2), - .footprint = gMonFootprint_Ditto, - LEARNSETS(Ditto), + .palette = gMonPalette_Ditto, + .shinyPalette = gMonShinyPalette_Ditto, + .iconSprite = gMonIcon_Ditto, + .iconPalIndex = 2, + FOOTPRINT(Ditto) + .tmIlliterate = TRUE, + .levelUpLearnset = sDittoLevelUpLearnset, + .teachableLearnset = sDittoTeachableLearnset, }, #endif //P_FAMILY_DITTO #if P_FAMILY_EEVEE -#define EEVEE_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 55, \ - .baseDefense = 50, \ - .baseSpeed = 55, \ - .baseSpAttack = 45, \ - .baseSpDefense = 65, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .expYield = 65, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Eevee"), \ - .cryId = CRY_EEVEE, \ - .natDexNum = NATIONAL_DEX_EEVEE, \ - .categoryName = _("Evolution"), \ - .footprint = gMonFootprint_Eevee, \ - LEARNSETS(Eevee), \ - .formSpeciesIdTable = sEeveeFormSpeciesIdTable, \ - .formChangeTable = sEeveeFormChangeTable - [SPECIES_EEVEE] = { - EEVEE_MISC_INFO, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), .height = 3, .weight = 65, - .description = COMPOUND_STRING( - "An Eevee has an unstable genetic makeup\n" - "that suddenly mutates due to its\n" - "environment. Radiation from various\n" - "Stones causes this Pokémon to evolve."), + .description = gEeveePokedexText, .pokemonScale = 476, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eevee, 40, 48), - FRONT_PIC_FEMALE(Eevee, 40, 48), + .frontPic = gMonFrontPic_Eevee, + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Eevee, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Eevee, 56, 48), - BACK_PIC_FEMALE(Eevee, 56, 48), + .backPic = gMonBackPic_Eevee, + .backPicFemale = gMonBackPic_EeveeF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Eevee), - ICON(Eevee, 2), + .palette = gMonPalette_Eevee, + .shinyPalette = gMonShinyPalette_Eevee, + .iconSprite = gMonIcon_Eevee, + .iconPalIndex = 2, + FOOTPRINT(Eevee) + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + .formChangeTable = sEeveeFormChangeTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}, + {EVO_SPECIFIC_MAP, MAPSEC_VIRIDIAN_FOREST, SPECIES_LEAFEON}, {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_LEAFEON}, + {EVO_SPECIFIC_MAP, MAPSEC_SEAFOAM_ISLANDS, SPECIES_GLACEON}, {EVO_ITEM, ITEM_ICE_STONE, SPECIES_GLACEON}, {EVO_FRIENDSHIP_MOVE_TYPE, TYPE_FAIRY, SPECIES_SYLVEON}), }, @@ -10594,7 +13642,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_GIGANTAMAX_FORMS [SPECIES_EEVEE_GIGANTAMAX] = { - EEVEE_MISC_INFO, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), .height = 180, .weight = 0, .description = COMPOUND_STRING( @@ -10606,19 +13674,87 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(EeveeGigantamax, 64, 64), + .frontPic = gMonFrontPic_EeveeGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_EeveeGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EeveeGigantamax, 64, 64), + .backPic = gMonBackPic_EeveeGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EeveeGigantamax), - ICON(EeveeGigantamax, 2), + .palette = gMonPalette_EeveeGigantamax, + .shinyPalette = gMonShinyPalette_EeveeGigantamax, + .iconSprite = gMonIcon_EeveeGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Eevee) .isGigantamax = TRUE, + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + .formChangeTable = sEeveeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + [SPECIES_EEVEE_PARTNER] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), + .height = 3, + .weight = 65, + .description = gEeveePokedexText, + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Eevee, + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Eevee, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Eevee, + .backPicFemale = gMonBackPic_EeveeF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + .palette = gMonPalette_Eevee, + .shinyPalette = gMonShinyPalette_Eevee, + .iconSprite = gMonIcon_EeveePartner, + .iconPalIndex = 2, + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + .iconSpriteFemale = gMonIcon_EeveePartnerF, + .iconPalIndexFemale = 2, + #endif + FOOTPRINT(Eevee) + .cannotBeTraded = TRUE, + .allPerfectIVs = TRUE, + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + }, + [SPECIES_VAPOREON] = { .baseHP = 130, @@ -10627,15 +13763,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_WATER_ABSORB, ABILITY_WATER_ABSORB, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Vaporeon"), @@ -10653,17 +13789,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vaporeon, 48, 48), + .frontPic = gMonFrontPic_Vaporeon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Vaporeon, .frontAnimId = ANIM_GLOW_BLUE, - BACK_PIC(Vaporeon, 64, 56), + .backPic = gMonBackPic_Vaporeon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Vaporeon), - ICON(Vaporeon, 0), - .footprint = gMonFootprint_Vaporeon, - LEARNSETS(Vaporeon), + .palette = gMonPalette_Vaporeon, + .shinyPalette = gMonShinyPalette_Vaporeon, + .iconSprite = gMonIcon_Vaporeon, + .iconPalIndex = 0, + FOOTPRINT(Vaporeon) + .levelUpLearnset = sVaporeonLevelUpLearnset, + .teachableLearnset = sVaporeonTeachableLearnset, }, [SPECIES_JOLTEON] = @@ -10674,15 +13815,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 130, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_VOLT_ABSORB, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Jolteon"), @@ -10700,17 +13841,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jolteon, 48, 48), + .frontPic = gMonFrontPic_Jolteon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Jolteon, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Jolteon, 56, 56), + .backPic = gMonBackPic_Jolteon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Jolteon), - ICON(Jolteon, 2), - .footprint = gMonFootprint_Jolteon, - LEARNSETS(Jolteon), + .palette = gMonPalette_Jolteon, + .shinyPalette = gMonShinyPalette_Jolteon, + .iconSprite = gMonIcon_Jolteon, + .iconPalIndex = 2, + FOOTPRINT(Jolteon) + .levelUpLearnset = sJolteonLevelUpLearnset, + .teachableLearnset = sJolteonTeachableLearnset, }, [SPECIES_FLAREON] = @@ -10721,15 +13867,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLASH_FIRE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Flareon"), @@ -10747,17 +13893,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flareon, 56, 56), + .frontPic = gMonFrontPic_Flareon, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Flareon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Flareon, 64, 56), + .backPic = gMonBackPic_Flareon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Flareon), - ICON(Flareon, 3), - .footprint = gMonFootprint_Flareon, - LEARNSETS(Flareon), + .palette = gMonPalette_Flareon, + .shinyPalette = gMonShinyPalette_Flareon, + .iconSprite = gMonIcon_Flareon, + .iconPalIndex = 3, + FOOTPRINT(Flareon) + .levelUpLearnset = sFlareonLevelUpLearnset, + .teachableLearnset = sFlareonTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -10769,15 +13920,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Espeon"), @@ -10795,17 +13946,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espeon, 48, 56), + .frontPic = gMonFrontPic_Espeon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Espeon, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Espeon, 64, 56), + .backPic = gMonBackPic_Espeon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Espeon), - ICON(Espeon, 2), - .footprint = gMonFootprint_Espeon, - LEARNSETS(Espeon), + .palette = gMonPalette_Espeon, + .shinyPalette = gMonShinyPalette_Espeon, + .iconSprite = gMonIcon_Espeon, + .iconPalIndex = 2, + FOOTPRINT(Espeon) + .levelUpLearnset = sEspeonLevelUpLearnset, + .teachableLearnset = sEspeonTeachableLearnset, }, [SPECIES_UMBREON] = @@ -10816,15 +13972,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 130, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Umbreon"), @@ -10842,17 +13998,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Umbreon, 40, 48), + .frontPic = gMonFrontPic_Umbreon, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Umbreon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Umbreon, 64, 64), + .backPic = gMonBackPic_Umbreon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Umbreon), - ICON(Umbreon, 0), - .footprint = gMonFootprint_Umbreon, - LEARNSETS(Umbreon), + .palette = gMonPalette_Umbreon, + .shinyPalette = gMonShinyPalette_Umbreon, + .iconSprite = gMonIcon_Umbreon, + .iconPalIndex = 0, + FOOTPRINT(Umbreon) + .levelUpLearnset = sUmbreonLevelUpLearnset, + .teachableLearnset = sUmbreonTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS @@ -10865,15 +14026,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Leafeon"), @@ -10891,17 +14052,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Leafeon, 56, 48), + .frontPic = gMonFrontPic_Leafeon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Leafeon, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Leafeon, 48, 64), + .backPic = gMonBackPic_Leafeon, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Leafeon), - ICON(Leafeon, 1), - .footprint = gMonFootprint_Leafeon, - LEARNSETS(Leafeon), + .palette = gMonPalette_Leafeon, + .shinyPalette = gMonShinyPalette_Leafeon, + .iconSprite = gMonIcon_Leafeon, + .iconPalIndex = 1, + FOOTPRINT(Leafeon) + .levelUpLearnset = sLeafeonLevelUpLearnset, + .teachableLearnset = sLeafeonTeachableLearnset, }, [SPECIES_GLACEON] = @@ -10912,15 +14078,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 130, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SNOW_CLOAK, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glaceon"), @@ -10938,17 +14104,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Glaceon, 64, 56), + .frontPic = gMonFrontPic_Glaceon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Glaceon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Glaceon, 56, 64), + .backPic = gMonBackPic_Glaceon, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Glaceon), - ICON(Glaceon, 0), - .footprint = gMonFootprint_Glaceon, - LEARNSETS(Glaceon), + .palette = gMonPalette_Glaceon, + .shinyPalette = gMonShinyPalette_Glaceon, + .iconSprite = gMonIcon_Glaceon, + .iconPalIndex = 0, + FOOTPRINT(Glaceon) + .levelUpLearnset = sGlaceonLevelUpLearnset, + .teachableLearnset = sGlaceonTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS @@ -10961,7 +14132,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 130, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 45, .expYield = 184, .evYield_SpDefense = 2, @@ -10969,7 +14140,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_CUTE_CHARM, ABILITY_PIXILATE }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -10988,17 +14159,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sylveon, 48, 56), + .frontPic = gMonFrontPic_Sylveon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Sylveon, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Sylveon, 64, 64), + .backPic = gMonBackPic_Sylveon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Sylveon), - ICON(Sylveon, 0), - .footprint = gMonFootprint_Sylveon, - LEARNSETS(Sylveon), + .palette = gMonPalette_Sylveon, + .shinyPalette = gMonShinyPalette_Sylveon, + .iconSprite = gMonIcon_Sylveon, + .iconPalIndex = 0, + FOOTPRINT(Sylveon) + .levelUpLearnset = sSylveonLevelUpLearnset, + .teachableLearnset = sSylveonTeachableLearnset, }, #endif //P_GEN_6_CROSS_EVOS #endif //P_FAMILY_EEVEE @@ -11012,15 +14188,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 79, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 79 : 130, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Porygon"), @@ -11038,18 +14214,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Porygon, 40, 40), + .frontPic = gMonFrontPic_Porygon, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Porygon, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Porygon, 56, 40), + .backPic = gMonBackPic_Porygon, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Porygon), - ICON(Porygon, 0), - .footprint = gMonFootprint_Porygon, - LEARNSETS(Porygon), - .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PORYGON2}), + .palette = gMonPalette_Porygon, + .shinyPalette = gMonShinyPalette_Porygon, + .iconSprite = gMonIcon_Porygon, + .iconPalIndex = 0, + FOOTPRINT(Porygon) + .levelUpLearnset = sPorygonLevelUpLearnset, + .teachableLearnset = sPorygonTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}, + {EVO_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}), }, #if P_GEN_2_CROSS_EVOS @@ -11061,7 +14243,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 105, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 180, .evYield_SpAttack = 2, @@ -11069,7 +14251,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Porygon2"), @@ -11087,19 +14269,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Porygon2, 40, 40), + .frontPic = gMonFrontPic_Porygon2, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Porygon2, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Porygon2, 56, 48), + .backPic = gMonBackPic_Porygon2, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Porygon2), - ICON(Porygon2, 0), - .footprint = gMonFootprint_Porygon2, - LEARNSETS(Porygon2), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_PORYGON_Z}), + .palette = gMonPalette_Porygon2, + .shinyPalette = gMonShinyPalette_Porygon2, + .iconSprite = gMonIcon_Porygon2, + .iconPalIndex = 0, + FOOTPRINT(Porygon2) + .levelUpLearnset = sPorygon2LevelUpLearnset, + .teachableLearnset = sPorygon2TeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}, + {EVO_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}), }, #if P_GEN_4_CROSS_EVOS @@ -11111,15 +14299,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 135, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 185, + #endif .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Porygon-Z"), @@ -11137,18 +14331,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PorygonZ, 40, 56), + .frontPic = gMonFrontPic_PorygonZ, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Porygon_Z, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 12, - BACK_PIC(PorygonZ, 64, 56), + .backPic = gMonBackPic_PorygonZ, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(PorygonZ), - ICON(PorygonZ, 0), - .footprint = gMonFootprint_PorygonZ, - LEARNSETS(PorygonZ), + .palette = gMonPalette_PorygonZ, + .shinyPalette = gMonShinyPalette_PorygonZ, + .iconSprite = gMonIcon_PorygonZ, + .iconPalIndex = 0, + FOOTPRINT(PorygonZ) + .levelUpLearnset = sPorygonZLevelUpLearnset, + .teachableLearnset = sPorygonZTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_GEN_2_CROSS_EVOS @@ -11163,15 +14362,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 90, .baseSpDefense = 55, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 120, + #endif .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Omanyte"), @@ -11189,17 +14394,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Omanyte, 40, 40), + .frontPic = gMonFrontPic_Omanyte, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Omanyte, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Omanyte, 48, 40), + .backPic = gMonBackPic_Omanyte, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Omanyte), - ICON(Omanyte, 0), - .footprint = gMonFootprint_Omanyte, - LEARNSETS(Omanyte), + .palette = gMonPalette_Omanyte, + .shinyPalette = gMonShinyPalette_Omanyte, + .iconSprite = gMonIcon_Omanyte, + .iconPalIndex = 0, + FOOTPRINT(Omanyte) + .levelUpLearnset = sOmanyteLevelUpLearnset, + .teachableLearnset = sOmanyteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_OMASTAR}), }, @@ -11211,15 +14421,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Omastar"), @@ -11237,17 +14447,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Omastar, 64, 56), + .frontPic = gMonFrontPic_Omastar, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Omastar, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Omastar, 56, 56), + .backPic = gMonBackPic_Omastar, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Omastar), - ICON(Omastar, 0), - .footprint = gMonFootprint_Omastar, - LEARNSETS(Omastar), + .palette = gMonPalette_Omastar, + .shinyPalette = gMonShinyPalette_Omastar, + .iconSprite = gMonIcon_Omastar, + .iconPalIndex = 0, + FOOTPRINT(Omastar) + .levelUpLearnset = sOmastarLevelUpLearnset, + .teachableLearnset = sOmastarTeachableLearnset, }, #endif //P_FAMILY_OMANYTE @@ -11260,15 +14475,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 55, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 119, + #endif .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kabuto"), @@ -11286,17 +14507,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kabuto, 40, 32), + .frontPic = gMonFrontPic_Kabuto, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Kabuto, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Kabuto, 48, 40), + .backPic = gMonBackPic_Kabuto, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Kabuto), - ICON(Kabuto, 2), - .footprint = gMonFootprint_Kabuto, - LEARNSETS(Kabuto), + .palette = gMonPalette_Kabuto, + .shinyPalette = gMonShinyPalette_Kabuto, + .iconSprite = gMonIcon_Kabuto, + .iconPalIndex = 2, + FOOTPRINT(Kabuto) + .levelUpLearnset = sKabutoLevelUpLearnset, + .teachableLearnset = sKabutoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KABUTOPS}), }, @@ -11308,15 +14534,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 201, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kabutops"), @@ -11334,51 +14566,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kabutops, 64, 64), + .frontPic = gMonFrontPic_Kabutops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Kabutops, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Kabutops, 64, 56), + .backPic = gMonBackPic_Kabutops, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Kabutops), - ICON(Kabutops, 2), - .footprint = gMonFootprint_Kabutops, - LEARNSETS(Kabutops), + .palette = gMonPalette_Kabutops, + .shinyPalette = gMonShinyPalette_Kabutops, + .iconSprite = gMonIcon_Kabutops, + .iconPalIndex = 2, + FOOTPRINT(Kabutops) + .levelUpLearnset = sKabutopsLevelUpLearnset, + .teachableLearnset = sKabutopsTeachableLearnset, }, #endif //P_FAMILY_KABUTO #if P_FAMILY_AERODACTYL -#define AERODACTYL_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Aerodactyl"), \ - .natDexNum = NATIONAL_DEX_AERODACTYL, \ - .categoryName = _("Fossil"), \ - .footprint = gMonFootprint_Aerodactyl, \ - LEARNSETS(Aerodactyl), \ - .formSpeciesIdTable = sAerodactylFormSpeciesIdTable,\ - .formChangeTable = sAerodactylFormChangeTable - [SPECIES_AERODACTYL] = { - AERODACTYL_MISC_INFO, .baseHP = 80, .baseAttack = 105, .baseDefense = 65, .baseSpeed = 130, .baseSpAttack = 60, .baseSpDefense = 75, - .expYield = 180, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 202, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_ROCK_HEAD, ABILITY_PRESSURE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Aerodactyl"), .cryId = CRY_AERODACTYL, + .natDexNum = NATIONAL_DEX_AERODACTYL, + .categoryName = _("Fossil"), .height = 18, .weight = 590, .description = COMPOUND_STRING( @@ -11390,31 +14620,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 302, .trainerOffset = 4, - FRONT_PIC(Aerodactyl, 64, 64), + .frontPic = gMonFrontPic_Aerodactyl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Aerodactyl, .frontAnimId = ANIM_V_SLIDE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Aerodactyl, 64, 48), + .backPic = gMonBackPic_Aerodactyl, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Aerodactyl), - ICON(Aerodactyl, 2), + .palette = gMonPalette_Aerodactyl, + .shinyPalette = gMonShinyPalette_Aerodactyl, + .iconSprite = gMonIcon_Aerodactyl, + .iconPalIndex = 2, + FOOTPRINT(Aerodactyl) + .levelUpLearnset = sAerodactylLevelUpLearnset, + .teachableLearnset = sAerodactylTeachableLearnset, + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable, + .formChangeTable = sAerodactylFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AERODACTYL_MEGA] = { - AERODACTYL_MISC_INFO, .baseHP = 80, .baseAttack = 135, .baseDefense = 85, .baseSpeed = 150, .baseSpAttack = 70, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), + .catchRate = 45, .expYield = 215, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Aerodactyl"), .cryId = CRY_AERODACTYL_MEGA, + .natDexNum = NATIONAL_DEX_AERODACTYL, + .categoryName = _("Fossil"), .height = 21, .weight = 790, .description = COMPOUND_STRING( @@ -11425,17 +14675,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 302, .trainerOffset = 4, - FRONT_PIC(AerodactylMega, 64, 64), + .frontPic = gMonFrontPic_AerodactylMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AerodactylMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(AerodactylMega, 64, 64), + .backPic = gMonBackPic_AerodactylMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(AerodactylMega), - ICON(AerodactylMega, 2), + .palette = gMonPalette_AerodactylMega, + .shinyPalette = gMonShinyPalette_AerodactylMega, + .iconSprite = gMonIcon_AerodactylMega, + .iconPalIndex = 2, + FOOTPRINT(Aerodactyl) .isMegaEvolution = TRUE, + .levelUpLearnset = sAerodactylLevelUpLearnset, + .teachableLearnset = sAerodactylTeachableLearnset, + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable, + .formChangeTable = sAerodactylFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_AERODACTYL @@ -11450,9 +14709,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 5, .baseSpAttack = 40, .baseSpDefense = 85, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 50, - .expYield = 78, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 78 : 94, .evYield_HP = 1, .itemCommon = ITEM_LEFTOVERS, .itemRare = ITEM_LEFTOVERS, @@ -11460,7 +14719,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Munchlax"), @@ -11478,53 +14737,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munchlax, 48, 48), + .frontPic = gMonFrontPic_Munchlax, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Munchlax, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Munchlax, 48, 56), + .backPic = gMonBackPic_Munchlax, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_GROW, - PALETTES(Munchlax), - ICON(Munchlax, 3), - .footprint = gMonFootprint_Munchlax, - LEARNSETS(Munchlax), + .palette = gMonPalette_Munchlax, + .shinyPalette = gMonShinyPalette_Munchlax, + .iconSprite = gMonIcon_Munchlax, + .iconPalIndex = 3, + FOOTPRINT(Munchlax) + .levelUpLearnset = sMunchlaxLevelUpLearnset, + .teachableLearnset = sMunchlaxTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SNORLAX}), }, #endif //P_GEN_4_CROSS_EVOS -#define SNORLAX_MISC_INFO \ - .baseHP = 160, \ - .baseAttack = 110, \ - .baseDefense = 65, \ - .baseSpeed = 30, \ - .baseSpAttack = 65, \ - .baseSpDefense = 110, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 25, \ - .expYield = 189, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_LEFTOVERS, \ - .itemRare = ITEM_LEFTOVERS, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Snorlax"), \ - .cryId = CRY_SNORLAX, \ - .natDexNum = NATIONAL_DEX_SNORLAX, \ - .categoryName = _("Sleeping"), \ - .footprint = gMonFootprint_Snorlax, \ - LEARNSETS(Snorlax), \ - .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, \ - .formChangeTable = sSnorlaxFormChangeTable - [SPECIES_SNORLAX] = { - SNORLAX_MISC_INFO, + .baseHP = 160, + .baseAttack = 110, + .baseDefense = 65, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 154, + .evYield_HP = 2, + .itemCommon = ITEM_LEFTOVERS, + .itemRare = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Snorlax"), + .cryId = CRY_SNORLAX, + .natDexNum = NATIONAL_DEX_SNORLAX, + .categoryName = _("Sleeping"), .height = 21, .weight = 4600, .description = COMPOUND_STRING( @@ -11536,21 +14793,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 423, .trainerOffset = 11, - FRONT_PIC(Snorlax, 64, 64), + .frontPic = gMonFrontPic_Snorlax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Snorlax, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snorlax, 64, 40), + .backPic = gMonBackPic_Snorlax, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Snorlax), - ICON(Snorlax, 3), + .palette = gMonPalette_Snorlax, + .shinyPalette = gMonShinyPalette_Snorlax, + .iconSprite = gMonIcon_Snorlax, + .iconPalIndex = 3, + FOOTPRINT(Snorlax) + .levelUpLearnset = sSnorlaxLevelUpLearnset, + .teachableLearnset = sSnorlaxTeachableLearnset, + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, + .formChangeTable = sSnorlaxFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_SNORLAX_GIGANTAMAX] = { - SNORLAX_MISC_INFO, + .baseHP = 160, + .baseAttack = 110, + .baseDefense = 65, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 154, + .evYield_HP = 2, + .itemCommon = ITEM_LEFTOVERS, + .itemRare = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Snorlax"), + .cryId = CRY_SNORLAX, + .natDexNum = NATIONAL_DEX_SNORLAX, + .categoryName = _("Sleeping"), .height = 350, .weight = 0, .description = COMPOUND_STRING( @@ -11562,294 +14850,388 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 423, .trainerOffset = 11, - FRONT_PIC(SnorlaxGigantamax, 64, 64), + .frontPic = gMonFrontPic_SnorlaxGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SnorlaxGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SnorlaxGigantamax, 64, 64), + .backPic = gMonBackPic_SnorlaxGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SnorlaxGigantamax), - ICON(SnorlaxGigantamax, 3), + .palette = gMonPalette_SnorlaxGigantamax, + .shinyPalette = gMonShinyPalette_SnorlaxGigantamax, + .iconSprite = gMonIcon_SnorlaxGigantamax, + .iconPalIndex = 3, + FOOTPRINT(Snorlax) .isGigantamax = TRUE, + .levelUpLearnset = sSnorlaxLevelUpLearnset, + .teachableLearnset = sSnorlaxTeachableLearnset, + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, + .formChangeTable = sSnorlaxFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX #if P_FAMILY_ARTICUNO -#define ARTICUNO_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Articuno"), \ - .cryId = CRY_ARTICUNO, \ - .natDexNum = NATIONAL_DEX_ARTICUNO, \ - .height = 17, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 309, \ - .trainerOffset = 2, \ - .footprint = gMonFootprint_Articuno, \ - .formSpeciesIdTable = sArticunoFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_ARTICUNO] = { - ARTICUNO_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 100, .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 125, - .types = { TYPE_ICE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ICE, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_SNOW_CLOAK }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Articuno"), + .cryId = CRY_ARTICUNO, + .natDexNum = NATIONAL_DEX_ARTICUNO, .categoryName = _("Freeze"), + .height = 17, .weight = 554, .description = COMPOUND_STRING( "Articuno is a legendary bird Pokémon that\n" "can control ice. The flapping of its wings\n" "chills the air. As a result, it is said that\n" "when this Pokémon flies, snow will fall."), - FRONT_PIC(Articuno, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + .frontPic = gMonFrontPic_Articuno, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Articuno, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Articuno, 64, 56), + .backPic = gMonBackPic_Articuno, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Articuno), - ICON(Articuno, 2), - LEARNSETS(Articuno), + .palette = gMonPalette_Articuno, + .shinyPalette = gMonShinyPalette_Articuno, + .iconSprite = gMonIcon_Articuno, + .iconPalIndex = 2, + FOOTPRINT(Articuno) + .isLegendary = TRUE, + .levelUpLearnset = sArticunoLevelUpLearnset, + .teachableLearnset = sArticunoTeachableLearnset, + .formSpeciesIdTable = sArticunoFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ARTICUNO_GALARIAN] = { - ARTICUNO_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 85, .baseSpeed = 95, .baseSpAttack = 125, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_COMPETITIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Articuno"), + .cryId = CRY_ARTICUNO, + .natDexNum = NATIONAL_DEX_ARTICUNO, .categoryName = _("Cruel"), + .height = 17, .weight = 509, .description = COMPOUND_STRING( "It fires beams that immobilize opponents\n" "as if they had been frozen solid.\n" "Its feather-like blades of psychic energy\n" "rip through thick iron sheets like paper."), - FRONT_PIC(ArticunoGalarian, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + .frontPic = gMonFrontPic_ArticunoGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_ArticunoGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(ArticunoGalarian, 64, 56), + .backPic = gMonBackPic_ArticunoGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ArticunoGalarian), - ICON(ArticunoGalarian, 2), - LEARNSETS(ArticunoGalarian), + .palette = gMonPalette_ArticunoGalarian, + .shinyPalette = gMonShinyPalette_ArticunoGalarian, + .iconSprite = gMonIcon_ArticunoGalarian, + .iconPalIndex = 2, + FOOTPRINT(Articuno) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sArticunoGalarianLevelUpLearnset, + .teachableLearnset = sArticunoGalarianTeachableLearnset, + .formSpeciesIdTable = sArticunoFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO #if P_FAMILY_ZAPDOS -#define ZAPDOS_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Zapdos"), \ - .cryId = CRY_ZAPDOS, \ - .natDexNum = NATIONAL_DEX_ZAPDOS, \ - .height = 16, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 318, \ - .trainerOffset = 3, \ - .footprint = gMonFootprint_Zapdos, \ - .formSpeciesIdTable = sZapdosFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_ZAPDOS] = { - ZAPDOS_MISC_INFO, .baseHP = 90, .baseAttack = 90, .baseDefense = 85, .baseSpeed = 100, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, - #endif + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + #endif + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Zapdos"), + .cryId = CRY_ZAPDOS, + .natDexNum = NATIONAL_DEX_ZAPDOS, .categoryName = _("Electric"), + .height = 16, .weight = 526, .description = COMPOUND_STRING( "Zapdos is a legendary bird Pokémon that\n" "has the ability to control electricity.\n" "It usually lives in thunderclouds. It gains\n" "power if it is stricken by lightning bolts."), - FRONT_PIC(Zapdos, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + .frontPic = gMonFrontPic_Zapdos, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Zapdos, .frontAnimId = ANIM_FLASH_YELLOW, .enemyMonElevation = 8, - BACK_PIC(Zapdos, 64, 40), + .backPic = gMonBackPic_Zapdos, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Zapdos), - ICON(Zapdos, 0), - LEARNSETS(Zapdos), + .palette = gMonPalette_Zapdos, + .shinyPalette = gMonShinyPalette_Zapdos, + .iconSprite = gMonIcon_Zapdos, + .iconPalIndex = 0, + FOOTPRINT(Zapdos) + .isLegendary = TRUE, + .levelUpLearnset = sZapdosLevelUpLearnset, + .teachableLearnset = sZapdosTeachableLearnset, + .formSpeciesIdTable = sZapdosFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ZAPDOS_GALARIAN] = { - ZAPDOS_MISC_INFO, .baseHP = 90, .baseAttack = 125, .baseDefense = 90, .baseSpeed = 100, .baseSpAttack = 85, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DEFIANT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Zapdos"), + .cryId = CRY_ZAPDOS, + .natDexNum = NATIONAL_DEX_ZAPDOS, .categoryName = _("Strong Legs"), + .height = 16, .weight = 582, .description = COMPOUND_STRING( "When its feathers rub together, they\n" "produce a crackling sound like the\n" "zapping of electricity. Apparently, it runs\n" "through the mountains at over 180 mph."), - FRONT_PIC(ZapdosGalarian, 48, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + .frontPic = gMonFrontPic_ZapdosGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZapdosGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZapdosGalarian, 56, 48), + .backPic = gMonBackPic_ZapdosGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZapdosGalarian), - ICON(ZapdosGalarian, 0), - LEARNSETS(ZapdosGalarian), + .palette = gMonPalette_ZapdosGalarian, + .shinyPalette = gMonShinyPalette_ZapdosGalarian, + .iconSprite = gMonIcon_ZapdosGalarian, + .iconPalIndex = 0, + FOOTPRINT(Zapdos) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sZapdosGalarianLevelUpLearnset, + .teachableLearnset = sZapdosGalarianTeachableLearnset, + .formSpeciesIdTable = sZapdosFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS #if P_FAMILY_MOLTRES -#define MOLTRES_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Moltres"), \ - .cryId = CRY_MOLTRES, \ - .natDexNum = NATIONAL_DEX_MOLTRES, \ - .height = 20, \ - .pokemonScale = 270, \ - .pokemonOffset = 0, \ - .trainerScale = 387, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Moltres, \ - .formSpeciesIdTable = sMoltresFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_MOLTRES] = { - MOLTRES_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 125, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Moltres"), + .cryId = CRY_MOLTRES, + .natDexNum = NATIONAL_DEX_MOLTRES, .categoryName = _("Flame"), + .height = 20, .weight = 600, .description = COMPOUND_STRING( "Moltres is a legendary bird Pokémon\n" "that can control fire. If injured, it is said\n" "to dip its body in the molten magma of\n" "a volcano to burn and heal itself."), - FRONT_PIC(Moltres, 64, 64), + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Moltres, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Moltres, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Moltres, 64, 56), + .backPic = gMonBackPic_Moltres, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Moltres), - ICON(Moltres, 0), - LEARNSETS(Moltres), + .palette = gMonPalette_Moltres, + .shinyPalette = gMonShinyPalette_Moltres, + .iconSprite = gMonIcon_Moltres, + .iconPalIndex = 0, + FOOTPRINT(Moltres) + .isLegendary = TRUE, + .levelUpLearnset = sMoltresLevelUpLearnset, + .teachableLearnset = sMoltresTeachableLearnset, + .formSpeciesIdTable = sMoltresFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_MOLTRES_GALARIAN] = { - MOLTRES_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 125, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BERSERK, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Moltres"), + .cryId = CRY_MOLTRES, + .natDexNum = NATIONAL_DEX_MOLTRES, .categoryName = _("Malevolent"), + .height = 20, .weight = 660, .description = COMPOUND_STRING( "This Pokémon's sinister, flame-like aura\n" "will consume the spirit of any creature\n" "it hits. Victims become burned-out\n" "shadows of themselves."), - FRONT_PIC(MoltresGalarian, 64, 64), + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_MoltresGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_MoltresGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MoltresGalarian, 56, 56), + .backPic = gMonBackPic_MoltresGalarian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MoltresGalarian), - ICON(MoltresGalarian, 0), - LEARNSETS(MoltresGalarian), + .palette = gMonPalette_MoltresGalarian, + .shinyPalette = gMonShinyPalette_MoltresGalarian, + .iconSprite = gMonIcon_MoltresGalarian, + .iconPalIndex = 0, + FOOTPRINT(Moltres) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sMoltresGalarianLevelUpLearnset, + .teachableLearnset = sMoltresGalarianTeachableLearnset, + .formSpeciesIdTable = sMoltresFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES @@ -11863,16 +15245,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dratini"), @@ -11890,17 +15272,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 386, .trainerOffset = 6, - FRONT_PIC(Dratini, 56, 48), + .frontPic = gMonFrontPic_Dratini, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Dratini, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dratini, 56, 48), + .backPic = gMonBackPic_Dratini, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dratini), - ICON(Dratini, 0), - .footprint = gMonFootprint_Dratini, - LEARNSETS(Dratini), + .palette = gMonPalette_Dratini, + .shinyPalette = gMonShinyPalette_Dratini, + .iconSprite = gMonIcon_Dratini, + .iconPalIndex = 0, + FOOTPRINT(Dratini) + .levelUpLearnset = sDratiniLevelUpLearnset, + .teachableLearnset = sDratiniTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_DRAGONAIR}), }, @@ -11912,16 +15299,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 144, .evYield_Attack = 2, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dragonair"), @@ -11939,17 +15326,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 411, .trainerOffset = 5, - FRONT_PIC(Dragonair, 64, 64), + .frontPic = gMonFrontPic_Dragonair, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Dragonair, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Dragonair, 40, 56), + .backPic = gMonBackPic_Dragonair, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dragonair), - ICON(Dragonair, 0), - .footprint = gMonFootprint_Dragonair, - LEARNSETS(Dragonair), + .palette = gMonPalette_Dragonair, + .shinyPalette = gMonShinyPalette_Dragonair, + .iconSprite = gMonIcon_Dragonair, + .iconPalIndex = 0, + FOOTPRINT(Dragonair) + .levelUpLearnset = sDragonairLevelUpLearnset, + .teachableLearnset = sDragonairTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_DRAGONITE}), }, @@ -11961,16 +15353,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif .evYield_Attack = 3, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MULTISCALE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dragonite"), @@ -11988,52 +15386,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(Dragonite, 64, 64), + .frontPic = gMonFrontPic_Dragonite, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dragonite, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Dragonite, 64, 64), + .backPic = gMonBackPic_Dragonite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dragonite), - ICON(Dragonite, 2), - .footprint = gMonFootprint_Dragonite, - LEARNSETS(Dragonite), + .palette = gMonPalette_Dragonite, + .shinyPalette = gMonShinyPalette_Dragonite, + .iconSprite = gMonIcon_Dragonite, + .iconPalIndex = 2, + FOOTPRINT(Dragonite) + .levelUpLearnset = sDragoniteLevelUpLearnset, + .teachableLearnset = sDragoniteTeachableLearnset, }, #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO -#define SPECIES_MEWTWO_MISC_INFO \ - .catchRate = 3, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Mewtwo"), \ - .natDexNum = NATIONAL_DEX_MEWTWO, \ - .categoryName = _("Genetic"), \ - .footprint = gMonFootprint_Mewtwo, \ - LEARNSETS(Mewtwo), \ - .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, \ - .formChangeTable = sMewtwoFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_MEWTWO] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 110, .baseDefense = 90, .baseSpeed = 130, .baseSpAttack = 154, .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 20, .weight = 1220, .description = COMPOUND_STRING( @@ -12045,32 +15446,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(Mewtwo, 64, 64), + .frontPic = gMonFrontPic_Mewtwo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Mewtwo, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Mewtwo, 64, 64), + .backPic = gMonBackPic_Mewtwo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Mewtwo), - ICON(Mewtwo, 2), + .palette = gMonPalette_Mewtwo, + .shinyPalette = gMonShinyPalette_Mewtwo, + .iconSprite = gMonIcon_Mewtwo, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MEWTWO_MEGA_X] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 190, .baseDefense = 100, .baseSpeed = 130, .baseSpAttack = 154, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIGHTING }, - .expYield = 351, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STEADFAST, ABILITY_STEADFAST, ABILITY_STEADFAST }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO_MEGA_X, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 23, .weight = 1270, .description = COMPOUND_STRING( @@ -12082,31 +15502,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(MewtwoMegaX, 48, 64), + .frontPic = gMonFrontPic_MewtwoMegaX, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MewtwoMegaX, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MewtwoMegaX, 56, 64), + .backPic = gMonBackPic_MewtwoMegaX, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(MewtwoMegaX), - ICON(MewtwoMegaX, 2), + .palette = gMonPalette_MewtwoMegaX, + .shinyPalette = gMonShinyPalette_MewtwoMegaX, + .iconSprite = gMonIcon_MewtwoMegaX, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .isMegaEvolution = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, [SPECIES_MEWTWO_MEGA_Y] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 150, .baseDefense = 70, .baseSpeed = 140, .baseSpAttack = 194, .baseSpDefense = 120, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .expYield = 351, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_INSOMNIA, ABILITY_INSOMNIA, ABILITY_INSOMNIA }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO_MEGA_Y, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 15, .weight = 330, .description = COMPOUND_STRING( @@ -12118,16 +15558,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(MewtwoMegaY, 40, 64), + .frontPic = gMonFrontPic_MewtwoMegaY, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MewtwoMegaY, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(MewtwoMegaY, 64, 64), + .backPic = gMonBackPic_MewtwoMegaY, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(MewtwoMegaY), - ICON(MewtwoMegaY, 2), + .palette = gMonPalette_MewtwoMegaY, + .shinyPalette = gMonShinyPalette_MewtwoMegaY, + .iconSprite = gMonIcon_MewtwoMegaY, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .isMegaEvolution = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MEWTWO @@ -12141,9 +15592,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 64, + #endif .evYield_HP = 3, .itemCommon = ITEM_LUM_BERRY, .itemRare = ITEM_LUM_BERRY, @@ -12151,10 +15608,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isMythical = TRUE, .speciesName = _("Mew"), .cryId = CRY_MEW, .natDexNum = NATIONAL_DEX_MEW, @@ -12170,18 +15626,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mew, 64, 48), + .frontPic = gMonFrontPic_Mew, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Mew, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 11, - BACK_PIC(Mew, 64, 64), + .backPic = gMonBackPic_Mew, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mew), - ICON(Mew, 0), - .footprint = gMonFootprint_Mew, - LEARNSETS(Mew), + .palette = gMonPalette_Mew, + .shinyPalette = gMonShinyPalette_Mew, + .iconSprite = gMonIcon_Mew, + .iconPalIndex = 0, + FOOTPRINT(Mew) + .isMythical = TRUE, + .levelUpLearnset = sMewLevelUpLearnset, + .teachableLearnset = sMewTeachableLearnset, }, #endif //P_FAMILY_MEW diff --git a/src/data/pokemon/species_info/gen_2.h b/src/data/pokemon/species_info/gen_2_families.h similarity index 59% rename from src/data/pokemon/species_info/gen_2.h rename to src/data/pokemon/species_info/gen_2_families.h index 87ed9e132..75fa9ac1e 100644 --- a/src/data/pokemon/species_info/gen_2.h +++ b/src/data/pokemon/species_info/gen_2_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 49, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 64, .evYield_SpDefense = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chikorita"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chikorita, 48, 48), + .frontPic = gMonFrontPic_Chikorita, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Chikorita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chikorita, 56, 48), + .backPic = gMonBackPic_Chikorita, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chikorita), - ICON(Chikorita, 1), - .footprint = gMonFootprint_Chikorita, - LEARNSETS(Chikorita), + .palette = gMonPalette_Chikorita, + .shinyPalette = gMonShinyPalette_Chikorita, + .iconSprite = gMonIcon_Chikorita, + .iconPalIndex = 1, + FOOTPRINT(Chikorita) + .levelUpLearnset = sChikoritaLevelUpLearnset, + .teachableLearnset = sChikoritaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BAYLEEF}), }, @@ -60,16 +65,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 60, .baseSpAttack = 63, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bayleef"), @@ -87,17 +92,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bayleef, 48, 64), + .frontPic = gMonFrontPic_Bayleef, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Bayleef, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bayleef, 64, 56), + .backPic = gMonBackPic_Bayleef, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Bayleef), - ICON(Bayleef, 1), - .footprint = gMonFootprint_Bayleef, - LEARNSETS(Bayleef), + .palette = gMonPalette_Bayleef, + .shinyPalette = gMonShinyPalette_Bayleef, + .iconSprite = gMonIcon_Bayleef, + .iconPalIndex = 1, + FOOTPRINT(Bayleef) + .levelUpLearnset = sBayleefLevelUpLearnset, + .teachableLearnset = sBayleefTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MEGANIUM}), }, @@ -109,16 +119,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 83, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Meganium"), @@ -136,19 +152,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 277, .trainerOffset = 1, - FRONT_PIC(Meganium, 48, 64), - FRONT_PIC_FEMALE(Meganium, 48, 64), + .frontPic = gMonFrontPic_Meganium, + .frontPicFemale = gMonFrontPic_MeganiumF, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Meganium, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Meganium, 56, 64), - BACK_PIC_FEMALE(Meganium, 56, 64), + .backPic = gMonBackPic_Meganium, + .backPicFemale = gMonBackPic_MeganiumF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Meganium), - ICON(Meganium, 1), - .footprint = gMonFootprint_Meganium, - LEARNSETS(Meganium), + .palette = gMonPalette_Meganium, + .shinyPalette = gMonShinyPalette_Meganium, + .iconSprite = gMonIcon_Meganium, + .iconPalIndex = 1, + FOOTPRINT(Meganium) + .levelUpLearnset = sMeganiumLevelUpLearnset, + .teachableLearnset = sMeganiumTeachableLearnset, }, #endif //P_FAMILY_CHIKORITA @@ -161,15 +184,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cyndaquil"), @@ -187,17 +210,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cyndaquil, 48, 40), + .frontPic = gMonFrontPic_Cyndaquil, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Cyndaquil, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cyndaquil, 64, 64), + .backPic = gMonBackPic_Cyndaquil, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Cyndaquil), - ICON(Cyndaquil, 3), - .footprint = gMonFootprint_Cyndaquil, - LEARNSETS(Cyndaquil), + .palette = gMonPalette_Cyndaquil, + .shinyPalette = gMonShinyPalette_Cyndaquil, + .iconSprite = gMonIcon_Cyndaquil, + .iconPalIndex = 3, + FOOTPRINT(Cyndaquil) + .levelUpLearnset = sCyndaquilLevelUpLearnset, + .teachableLearnset = sCyndaquilTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_QUILAVA}), }, @@ -209,7 +237,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -218,7 +246,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Quilava"), @@ -236,48 +264,56 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quilava, 64, 48), + .frontPic = gMonFrontPic_Quilava, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Quilava, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Quilava, 64, 64), + .backPic = gMonBackPic_Quilava, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Quilava), - ICON(Quilava, 3), - .footprint = gMonFootprint_Quilava, - LEARNSETS(Quilava), + .palette = gMonPalette_Quilava, + .shinyPalette = gMonShinyPalette_Quilava, + .iconSprite = gMonIcon_Quilava, + .iconPalIndex = 3, + FOOTPRINT(Quilava) + .levelUpLearnset = sQuilavaLevelUpLearnset, + .teachableLearnset = sQuilavaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_TYPHLOSION}, {EVO_NONE, 0, SPECIES_TYPHLOSION_HISUIAN}), }, -#define TYPHLOSION_MISC_INFO \ - .catchRate = 45, \ - .expYield = 240, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Typhlosion"), \ - .cryId = CRY_TYPHLOSION, \ - .natDexNum = NATIONAL_DEX_TYPHLOSION, \ - .footprint = gMonFootprint_Typhlosion, \ - .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define TYPHLOSION_EXP_YIELD 267 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define TYPHLOSION_EXP_YIELD 240 +#else + #define TYPHLOSION_EXP_YIELD 209 +#endif [SPECIES_TYPHLOSION] = { - TYPHLOSION_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = TYPHLOSION_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Typhlosion"), + .cryId = CRY_TYPHLOSION, + .natDexNum = NATIONAL_DEX_TYPHLOSION, .categoryName = _("Volcano"), .height = 17, .weight = 795, @@ -290,31 +326,49 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(Typhlosion, 56, 64), + .frontPic = gMonFrontPic_Typhlosion, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Typhlosion, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 20, - BACK_PIC(Typhlosion, 64, 64), + .backPic = gMonBackPic_Typhlosion, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Typhlosion), - ICON(Typhlosion, 3), - LEARNSETS(Typhlosion), + .palette = gMonPalette_Typhlosion, + .shinyPalette = gMonShinyPalette_Typhlosion, + .iconSprite = gMonIcon_Typhlosion, + .iconPalIndex = 3, + FOOTPRINT(Typhlosion) + .levelUpLearnset = sTyphlosionLevelUpLearnset, + .teachableLearnset = sTyphlosionTeachableLearnset, + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_TYPHLOSION_HISUIAN] = { - TYPHLOSION_MISC_INFO, .baseHP = 73, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 95, .baseSpAttack = 119, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 45, + .expYield = TYPHLOSION_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Typhlosion"), + .cryId = CRY_TYPHLOSION, + .natDexNum = NATIONAL_DEX_TYPHLOSION, .categoryName = _("Ghost Flame"), .height = 16, .weight = 698, @@ -327,17 +381,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(TyphlosionHisuian, 48, 64), + .frontPic = gMonFrontPic_TyphlosionHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TyphlosionHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TyphlosionHisuian, 64, 56), + .backPic = gMonBackPic_TyphlosionHisuian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TyphlosionHisuian), - ICON(TyphlosionHisuian, 1), - LEARNSETS(TyphlosionHisuian), + .palette = gMonPalette_TyphlosionHisuian, + .shinyPalette = gMonShinyPalette_TyphlosionHisuian, + .iconSprite = gMonIcon_TyphlosionHisuian, + .iconPalIndex = 1, + FOOTPRINT(Typhlosion) .isHisuianForm = TRUE, + .levelUpLearnset = sTyphlosionHisuianLevelUpLearnset, + .teachableLearnset = sTyphlosionHisuianTeachableLearnset, + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL @@ -351,15 +412,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 43, .baseSpAttack = 44, .baseSpDefense = 48, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Totodile"), @@ -377,17 +438,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Totodile, 40, 40), + .frontPic = gMonFrontPic_Totodile, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Totodile, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Totodile, 56, 48), + .backPic = gMonBackPic_Totodile, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Totodile), - ICON(Totodile, 0), - .footprint = gMonFootprint_Totodile, - LEARNSETS(Totodile), + .palette = gMonPalette_Totodile, + .shinyPalette = gMonShinyPalette_Totodile, + .iconSprite = gMonIcon_Totodile, + .iconPalIndex = 0, + FOOTPRINT(Totodile) + .levelUpLearnset = sTotodileLevelUpLearnset, + .teachableLearnset = sTotodileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CROCONAW}), }, @@ -399,16 +465,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 58, .baseSpAttack = 59, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -427,17 +493,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Croconaw, 48, 56), + .frontPic = gMonFrontPic_Croconaw, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Croconaw, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Croconaw, 56, 64), + .backPic = gMonBackPic_Croconaw, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Croconaw), - ICON(Croconaw, 0), - .footprint = gMonFootprint_Croconaw, - LEARNSETS(Croconaw), + .palette = gMonPalette_Croconaw, + .shinyPalette = gMonShinyPalette_Croconaw, + .iconSprite = gMonIcon_Croconaw, + .iconPalIndex = 0, + FOOTPRINT(Croconaw) + .levelUpLearnset = sCroconawLevelUpLearnset, + .teachableLearnset = sCroconawTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_FERALIGATR}), }, @@ -449,16 +520,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 78, .baseSpAttack = 79, .baseSpDefense = 83, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif .evYield_Attack = 2, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Feraligatr"), @@ -476,18 +553,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Feraligatr, 64, 64), + .frontPic = gMonFrontPic_Feraligatr, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Feraligatr, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 5, - BACK_PIC(Feraligatr, 56, 64), + .backPic = gMonBackPic_Feraligatr, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Feraligatr), - ICON(Feraligatr, 0), - .footprint = gMonFootprint_Feraligatr, - LEARNSETS(Feraligatr), + .palette = gMonPalette_Feraligatr, + .shinyPalette = gMonShinyPalette_Feraligatr, + .iconSprite = gMonIcon_Feraligatr, + .iconPalIndex = 0, + FOOTPRINT(Feraligatr) + .levelUpLearnset = sFeraligatrLevelUpLearnset, + .teachableLearnset = sFeraligatrTeachableLearnset, }, #endif //P_FAMILY_TOTODILE @@ -500,15 +582,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 43, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 43 : 57, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sentret"), @@ -526,17 +608,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sentret, 40, 64), + .frontPic = gMonFrontPic_Sentret, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Sentret, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sentret, 48, 64), + .backPic = gMonBackPic_Sentret, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Sentret), - ICON(Sentret, 2), - .footprint = gMonFootprint_Sentret, - LEARNSETS(Sentret), + .palette = gMonPalette_Sentret, + .shinyPalette = gMonShinyPalette_Sentret, + .iconSprite = gMonIcon_Sentret, + .iconPalIndex = 2, + FOOTPRINT(Sentret) + .levelUpLearnset = sSentretLevelUpLearnset, + .teachableLearnset = sSentretTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FURRET}), }, @@ -548,15 +635,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 90, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, - .expYield = 145, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Furret"), @@ -574,17 +661,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Furret, 48, 56), + .frontPic = gMonFrontPic_Furret, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Furret, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Furret, 64, 56), + .backPic = gMonBackPic_Furret, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Furret), - ICON(Furret, 2), - .footprint = gMonFootprint_Furret, - LEARNSETS(Furret), + .palette = gMonPalette_Furret, + .shinyPalette = gMonShinyPalette_Furret, + .iconSprite = gMonIcon_Furret, + .iconPalIndex = 2, + FOOTPRINT(Furret) + .levelUpLearnset = sFurretLevelUpLearnset, + .teachableLearnset = sFurretTeachableLearnset, }, #endif //P_FAMILY_SENTRET @@ -597,15 +689,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 36, .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 58, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hoothoot"), @@ -623,17 +715,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hoothoot, 40, 40), + .frontPic = gMonFrontPic_Hoothoot, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hoothoot, .frontAnimId = ANIM_V_SLIDE_SLOW, - BACK_PIC(Hoothoot, 56, 64), + .backPic = gMonBackPic_Hoothoot, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Hoothoot), - ICON(Hoothoot, 2), - .footprint = gMonFootprint_Hoothoot, - LEARNSETS(Hoothoot), + .palette = gMonPalette_Hoothoot, + .shinyPalette = gMonShinyPalette_Hoothoot, + .iconSprite = gMonIcon_Hoothoot, + .iconPalIndex = 2, + FOOTPRINT(Hoothoot) + .levelUpLearnset = sHoothootLevelUpLearnset, + .teachableLearnset = sHoothootTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_NOCTOWL}), }, @@ -645,15 +742,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 86 : 76, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 158, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 155, + #else + .expYield = 162, + #endif .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Noctowl"), @@ -671,17 +774,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Noctowl, 40, 64), + .frontPic = gMonFrontPic_Noctowl, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Noctowl, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Noctowl, 48, 64), + .backPic = gMonBackPic_Noctowl, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Noctowl), - ICON(Noctowl, 2), - .footprint = gMonFootprint_Noctowl, - LEARNSETS(Noctowl), + .palette = gMonPalette_Noctowl, + .shinyPalette = gMonShinyPalette_Noctowl, + .iconSprite = gMonIcon_Noctowl, + .iconPalIndex = 2, + FOOTPRINT(Noctowl) + .levelUpLearnset = sNoctowlLevelUpLearnset, + .teachableLearnset = sNoctowlTeachableLearnset, }, #endif //P_FAMILY_HOOTHOOT @@ -694,15 +802,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 255, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 54, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ledyba"), @@ -720,19 +828,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ledyba, 48, 48), - FRONT_PIC_FEMALE(Ledyba, 48, 48), + .frontPic = gMonFrontPic_Ledyba, + .frontPicFemale = gMonFrontPic_LedybaF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Ledyba, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Ledyba, 56, 48), - BACK_PIC_FEMALE(Ledyba, 56, 48), + .backPic = gMonBackPic_Ledyba, + .backPicFemale = gMonBackPic_LedybaF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Ledyba), - ICON(Ledyba, 0), - .footprint = gMonFootprint_Ledyba, - LEARNSETS(Ledyba), + .palette = gMonPalette_Ledyba, + .shinyPalette = gMonShinyPalette_Ledyba, + .iconSprite = gMonIcon_Ledyba, + .iconPalIndex = 0, + FOOTPRINT(Ledyba) + .levelUpLearnset = sLedybaLevelUpLearnset, + .teachableLearnset = sLedybaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_LEDIAN}), }, @@ -744,15 +859,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 110, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 90, - .expYield = 137, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ledian"), @@ -770,20 +885,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ledian, 48, 56), - FRONT_PIC_FEMALE(Ledian, 48, 56), + .frontPic = gMonFrontPic_Ledian, + .frontPicFemale = gMonFrontPic_LedianF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Ledian, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Ledian, 64, 64), - BACK_PIC_FEMALE(Ledian, 64, 64), + .backPic = gMonBackPic_Ledian, + .backPicFemale = gMonBackPic_LedianF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Ledian), - ICON(Ledian, 0), - .footprint = gMonFootprint_Ledian, - LEARNSETS(Ledian), + .palette = gMonPalette_Ledian, + .shinyPalette = gMonShinyPalette_Ledian, + .iconSprite = gMonIcon_Ledian, + .iconPalIndex = 0, + FOOTPRINT(Ledian) + .levelUpLearnset = sLedianLevelUpLearnset, + .teachableLearnset = sLedianTeachableLearnset, }, #endif //P_FAMILY_LEDYBA @@ -796,15 +918,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 54, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Spinarak"), @@ -822,17 +944,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spinarak, 48, 32), + .frontPic = gMonFrontPic_Spinarak, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Spinarak, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Spinarak, 64, 32), + .backPic = gMonBackPic_Spinarak, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Spinarak), - ICON(Spinarak, 1), - .footprint = gMonFootprint_Spinarak, - LEARNSETS(Spinarak), + .palette = gMonPalette_Spinarak, + .shinyPalette = gMonShinyPalette_Spinarak, + .iconSprite = gMonIcon_Spinarak, + .iconPalIndex = 1, + FOOTPRINT(Spinarak) + .levelUpLearnset = sSpinarakLevelUpLearnset, + .teachableLearnset = sSpinarakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARIADOS}), }, @@ -844,15 +971,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 70 : 60, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 140, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 137, + #else + .expYield = 134, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ariados"), @@ -870,17 +1003,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ariados, 64, 56), + .frontPic = gMonFrontPic_Ariados, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Ariados, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Ariados, 64, 48), + .backPic = gMonBackPic_Ariados, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Ariados), - ICON(Ariados, 0), - .footprint = gMonFootprint_Ariados, - LEARNSETS(Ariados), + .palette = gMonPalette_Ariados, + .shinyPalette = gMonShinyPalette_Ariados, + .iconSprite = gMonIcon_Ariados, + .iconPalIndex = 0, + FOOTPRINT(Ariados) + .levelUpLearnset = sAriadosLevelUpLearnset, + .teachableLearnset = sAriadosTeachableLearnset, }, #endif //P_FAMILY_SPINARAK @@ -893,16 +1031,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 67, .baseSpAttack = 56, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_ELECTRIC), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 90, .evYield_HP = 1, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Chinchou"), @@ -920,17 +1058,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chinchou, 64, 48), + .frontPic = gMonFrontPic_Chinchou, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Chinchou, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Chinchou, 64, 48), + .backPic = gMonBackPic_Chinchou, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Chinchou), - ICON(Chinchou, 2), - .footprint = gMonFootprint_Chinchou, - LEARNSETS(Chinchou), + .palette = gMonPalette_Chinchou, + .shinyPalette = gMonShinyPalette_Chinchou, + .iconSprite = gMonIcon_Chinchou, + .iconPalIndex = 2, + FOOTPRINT(Chinchou) + .levelUpLearnset = sChinchouLevelUpLearnset, + .teachableLearnset = sChinchouTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_LANTURN}), }, @@ -942,16 +1085,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 67, .baseSpAttack = 76, .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_ELECTRIC), .catchRate = 75, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 156, .evYield_HP = 2, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Lanturn"), @@ -969,17 +1112,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lanturn, 64, 48), + .frontPic = gMonFrontPic_Lanturn, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Lanturn, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Lanturn, 64, 56), + .backPic = gMonBackPic_Lanturn, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Lanturn), - ICON(Lanturn, 0), - .footprint = gMonFootprint_Lanturn, - LEARNSETS(Lanturn), + .palette = gMonPalette_Lanturn, + .shinyPalette = gMonShinyPalette_Lanturn, + .iconSprite = gMonIcon_Lanturn, + .iconPalIndex = 0, + FOOTPRINT(Lanturn) + .levelUpLearnset = sLanturnLevelUpLearnset, + .teachableLearnset = sLanturnTeachableLearnset, }, #endif //P_FAMILY_CHINCHOU @@ -994,15 +1142,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TOGEPI_FAMILY_TYPE, TOGEPI_FAMILY_TYPE }, + .types = MON_TYPES(TOGEPI_FAMILY_TYPE), .catchRate = 190, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Togepi"), @@ -1020,17 +1168,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togepi, 24, 32), + .frontPic = gMonFrontPic_Togepi, + .frontPicSize = MON_COORDS_SIZE(24, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Togepi, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Togepi, 48, 40), + .backPic = gMonBackPic_Togepi, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Togepi), - ICON(Togepi, 0), - .footprint = gMonFootprint_Togepi, - LEARNSETS(Togepi), + .palette = gMonPalette_Togepi, + .shinyPalette = gMonShinyPalette_Togepi, + .iconSprite = gMonIcon_Togepi, + .iconPalIndex = 0, + FOOTPRINT(Togepi) + .levelUpLearnset = sTogepiLevelUpLearnset, + .teachableLearnset = sTogepiTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}), }, @@ -1042,15 +1195,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 80, .baseSpDefense = 105, - .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING }, + .types = MON_TYPES(TOGEPI_FAMILY_TYPE, TYPE_FLYING), .catchRate = 75, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 114, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Togetic"), @@ -1068,18 +1221,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togetic, 32, 48), + .frontPic = gMonFrontPic_Togetic, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Togetic, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Togetic, 56, 56), + .backPic = gMonBackPic_Togetic, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Togetic), - ICON(Togetic, 0), - .footprint = gMonFootprint_Togetic, - LEARNSETS(Togetic), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_TOGEKISS}), + .palette = gMonPalette_Togetic, + .shinyPalette = gMonShinyPalette_Togetic, + .iconSprite = gMonIcon_Togetic, + .iconPalIndex = 0, + FOOTPRINT(Togetic) + .levelUpLearnset = sTogeticLevelUpLearnset, + .teachableLearnset = sTogeticTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_TOGEKISS}), }, #if P_GEN_4_CROSS_EVOS @@ -1091,20 +1249,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 120, .baseSpDefense = 115, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING }, - #else - .types = { TYPE_NORMAL, TYPE_FLYING }, - #endif + .types = MON_TYPES(TOGEPI_FAMILY_TYPE, TYPE_FLYING), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 273, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 245, + #else + .expYield = 220, + #endif .evYield_SpAttack = 2, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -1123,18 +1283,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Togekiss, 64, 56), + .frontPic = gMonFrontPic_Togekiss, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Togekiss, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 14, - BACK_PIC(Togekiss, 64, 48), + .backPic = gMonBackPic_Togekiss, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Togekiss), - ICON(Togekiss, 2), - .footprint = gMonFootprint_Togekiss, - LEARNSETS(Togekiss), + .palette = gMonPalette_Togekiss, + .shinyPalette = gMonShinyPalette_Togekiss, + .iconSprite = gMonIcon_Togekiss, + .iconPalIndex = 2, + FOOTPRINT(Togekiss) + .levelUpLearnset = sTogekissLevelUpLearnset, + .teachableLearnset = sTogekissTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TOGEPI @@ -1148,15 +1313,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 45, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 73, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Natu"), @@ -1174,18 +1339,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 25, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Natu, 32, 32), + .frontPic = gMonFrontPic_Natu, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Natu, .frontAnimId = ANIM_H_JUMPS, .frontAnimDelay = 30, - BACK_PIC(Natu, 40, 40), + .backPic = gMonBackPic_Natu, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Natu), - ICON(Natu, 1), - .footprint = gMonFootprint_Natu, - LEARNSETS(Natu), + .palette = gMonPalette_Natu, + .shinyPalette = gMonShinyPalette_Natu, + .iconSprite = gMonIcon_Natu, + .iconPalIndex = 1, + FOOTPRINT(Natu) + .levelUpLearnset = sNatuLevelUpLearnset, + .teachableLearnset = sNatuTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_XATU}), }, @@ -1197,16 +1367,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 75, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 171, .evYield_Speed = 1, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Xatu"), @@ -1224,18 +1394,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 318, .trainerOffset = 4, - FRONT_PIC(Xatu, 40, 56), - FRONT_PIC_FEMALE(Xatu, 40, 56), + .frontPic = gMonFrontPic_Xatu, + .frontPicFemale = gMonFrontPic_XatuF, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Xatu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Xatu, 64, 56), + .backPic = gMonBackPic_Xatu, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Xatu), - ICON(Xatu, 1), - .footprint = gMonFootprint_Xatu, - LEARNSETS(Xatu), + .palette = gMonPalette_Xatu, + .shinyPalette = gMonShinyPalette_Xatu, + .iconSprite = gMonIcon_Xatu, + .iconPalIndex = 1, + FOOTPRINT(Xatu) + .levelUpLearnset = sXatuLevelUpLearnset, + .teachableLearnset = sXatuTeachableLearnset, }, #endif //P_FAMILY_NATU @@ -1248,15 +1424,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 235, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 59, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Mareep"), @@ -1274,18 +1450,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mareep, 40, 48), + .frontPic = gMonFrontPic_Mareep, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Mareep, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 50, - BACK_PIC(Mareep, 56, 40), + .backPic = gMonBackPic_Mareep, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mareep), - ICON(Mareep, 0), - .footprint = gMonFootprint_Mareep, - LEARNSETS(Mareep), + .palette = gMonPalette_Mareep, + .shinyPalette = gMonShinyPalette_Mareep, + .iconSprite = gMonIcon_Mareep, + .iconPalIndex = 0, + FOOTPRINT(Mareep) + .levelUpLearnset = sMareepLevelUpLearnset, + .teachableLearnset = sMareepTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FLAAFFY}), }, @@ -1297,15 +1478,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 80, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 117, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Flaaffy"), @@ -1323,104 +1504,144 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flaaffy, 48, 48), + .frontPic = gMonFrontPic_Flaaffy, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Flaaffy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Flaaffy, 48, 56), + .backPic = gMonBackPic_Flaaffy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Flaaffy), - ICON(Flaaffy, 0), - .footprint = gMonFootprint_Flaaffy, - LEARNSETS(Flaaffy), + .palette = gMonPalette_Flaaffy, + .shinyPalette = gMonShinyPalette_Flaaffy, + .iconSprite = gMonIcon_Flaaffy, + .iconPalIndex = 0, + FOOTPRINT(Flaaffy) + .levelUpLearnset = sFlaaffyLevelUpLearnset, + .teachableLearnset = sFlaaffyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_AMPHAROS}), }, -#define AMPHAROS_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD },\ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Ampharos"), \ - .natDexNum = NATIONAL_DEX_AMPHAROS, \ - .categoryName = _("Light"), \ - .height = 14, \ - .weight = 615, \ - .pokemonScale = 256, \ - .pokemonOffset = 4, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Ampharos, \ - LEARNSETS(Ampharos), \ - .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, \ - .formChangeTable = sAmpharosFormChangeTable - #define AMPHAROS_DEFENSE (P_UPDATED_STATS >= GEN_6 ? 85 : 75) [SPECIES_AMPHAROS] = { - AMPHAROS_MISC_INFO, .baseHP = 90, .baseAttack = 75, .baseDefense = AMPHAROS_DEFENSE, .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 225, + #else + .expYield = 194, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ampharos"), .cryId = CRY_AMPHAROS, + .natDexNum = NATIONAL_DEX_AMPHAROS, + .categoryName = _("Light"), + .height = 14, + .weight = 615, .description = COMPOUND_STRING( "It gives off so much light that it can be\n" "seen even from space. People in the old\n" "days used its light to send signals back\n" "and forth with others far away."), - FRONT_PIC(Ampharos, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ampharos, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Ampharos, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 10, - BACK_PIC(Ampharos, 56, 64), + .backPic = gMonBackPic_Ampharos, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Ampharos), - ICON(Ampharos, 0), + .palette = gMonPalette_Ampharos, + .shinyPalette = gMonShinyPalette_Ampharos, + .iconSprite = gMonIcon_Ampharos, + .iconPalIndex = 0, + FOOTPRINT(Ampharos) + .levelUpLearnset = sAmpharosLevelUpLearnset, + .teachableLearnset = sAmpharosTeachableLearnset, + .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, + .formChangeTable = sAmpharosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AMPHAROS_MEGA] = { - AMPHAROS_MISC_INFO, .baseHP = 90, .baseAttack = 95, .baseDefense = AMPHAROS_DEFENSE + 20, .baseSpeed = 45, .baseSpAttack = 165, .baseSpDefense = 110, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, - .expYield = 275, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 305 : 275, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ampharos"), .cryId = CRY_AMPHAROS_MEGA, + .natDexNum = NATIONAL_DEX_AMPHAROS, + .categoryName = _("Light"), + .height = 14, + .weight = 615, .description = COMPOUND_STRING( "Massive amounts of energy intensely\n" "stimulated Ampharos's cells, apparently\n" "awakening its long-sleeping dragon's\n" "blood."), - FRONT_PIC(AmpharosMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_AmpharosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AmpharosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AmpharosMega, 64, 64), + .backPic = gMonBackPic_AmpharosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(AmpharosMega), - ICON(AmpharosMega, 0), + .palette = gMonPalette_AmpharosMega, + .shinyPalette = gMonShinyPalette_AmpharosMega, + .iconSprite = gMonIcon_AmpharosMega, + .iconPalIndex = 0, + FOOTPRINT(Ampharos) .isMegaEvolution = TRUE, + .levelUpLearnset = sAmpharosLevelUpLearnset, + .teachableLearnset = sAmpharosTeachableLearnset, + .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, + .formChangeTable = sAmpharosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAREEP @@ -1436,18 +1657,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = 20, .baseSpDefense = 40, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FAIRY), #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), #endif .catchRate = 150, - .expYield = 38, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 38 : 33, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Azurill"), @@ -1465,17 +1686,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azurill, 48, 48), + .frontPic = gMonFrontPic_Azurill, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Azurill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Azurill, 64, 56), + .backPic = gMonBackPic_Azurill, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Azurill), - ICON(Azurill, 0), - .footprint = gMonFootprint_Azurill, - LEARNSETS(Azurill), + .palette = gMonPalette_Azurill, + .shinyPalette = gMonShinyPalette_Azurill, + .iconSprite = gMonIcon_Azurill, + .iconPalIndex = 0, + FOOTPRINT(Azurill) + .levelUpLearnset = sAzurillLevelUpLearnset, + .teachableLearnset = sAzurillTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_MARILL}), }, #endif //P_GEN_3_CROSS_EVOS @@ -1489,18 +1715,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = 20, .baseSpDefense = 50, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), #else - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), #endif .catchRate = 190, - .expYield = 88, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 88 : 58, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Marill"), @@ -1518,17 +1744,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marill, 56, 40), + .frontPic = gMonFrontPic_Marill, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Marill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Marill, 64, 40), + .backPic = gMonBackPic_Marill, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Marill), - ICON(Marill, 0), - .footprint = gMonFootprint_Marill, - LEARNSETS(Marill), + .palette = gMonPalette_Marill, + .shinyPalette = gMonShinyPalette_Marill, + .iconSprite = gMonIcon_Marill, + .iconPalIndex = 0, + FOOTPRINT(Marill) + .levelUpLearnset = sMarillLevelUpLearnset, + .teachableLearnset = sMarillTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_AZUMARILL}), }, @@ -1541,18 +1772,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 60 : 50, .baseSpDefense = 80, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), #else - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), #endif .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 210, + #elif P_UPDATED_EXP_YIELDS >= GEN_6 .expYield = 189, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 185, + #else + .expYield = 153, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Azumarill"), @@ -1570,17 +1809,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azumarill, 56, 64), + .frontPic = gMonFrontPic_Azumarill, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Azumarill, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Azumarill, 64, 64), + .backPic = gMonBackPic_Azumarill, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Azumarill), - ICON(Azumarill, 0), - .footprint = gMonFootprint_Azumarill, - LEARNSETS(Azumarill), + .palette = gMonPalette_Azumarill, + .shinyPalette = gMonShinyPalette_Azumarill, + .iconSprite = gMonIcon_Azumarill, + .iconPalIndex = 0, + FOOTPRINT(Azumarill) + .levelUpLearnset = sAzumarillLevelUpLearnset, + .teachableLearnset = sAzumarillTeachableLearnset, }, #endif //P_FAMILY_MARILL @@ -1594,15 +1838,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 10, .baseSpAttack = 10, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 68, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bonsly"), @@ -1620,17 +1864,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bonsly, 32, 48), + .frontPic = gMonFrontPic_Bonsly, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Bonsly, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Bonsly, 40, 64), + .backPic = gMonBackPic_Bonsly, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Bonsly), - ICON(Bonsly, 1), - .footprint = gMonFootprint_Bonsly, - LEARNSETS(Bonsly), + .palette = gMonPalette_Bonsly, + .shinyPalette = gMonShinyPalette_Bonsly, + .iconSprite = gMonIcon_Bonsly, + .iconPalIndex = 1, + FOOTPRINT(Bonsly) + .levelUpLearnset = sBonslyLevelUpLearnset, + .teachableLearnset = sBonslyTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_SUDOWOODO}), }, #endif //P_GEN_4_CROSS_EVOS @@ -1643,15 +1892,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 65, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 135, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sudowoodo"), @@ -1669,19 +1918,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sudowoodo, 48, 56), - FRONT_PIC_FEMALE(Sudowoodo, 48, 56), + .frontPic = gMonFrontPic_Sudowoodo, + .frontPicFemale = gMonFrontPic_SudowoodoF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Sudowoodo, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Sudowoodo, 48, 56), - BACK_PIC_FEMALE(Sudowoodo, 48, 56), + .backPic = gMonBackPic_Sudowoodo, + .backPicFemale = gMonBackPic_SudowoodoF, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sudowoodo), - ICON(Sudowoodo, 1), - .footprint = gMonFootprint_Sudowoodo, - LEARNSETS(Sudowoodo), + .palette = gMonPalette_Sudowoodo, + .shinyPalette = gMonShinyPalette_Sudowoodo, + .iconSprite = gMonIcon_Sudowoodo, + .iconPalIndex = 1, + FOOTPRINT(Sudowoodo) + .levelUpLearnset = sSudowoodoLevelUpLearnset, + .teachableLearnset = sSudowoodoTeachableLearnset, }, #endif //P_FAMILY_SUDOWOODO @@ -1694,15 +1950,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hoppip"), @@ -1720,18 +1976,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hoppip, 64, 56), + .frontPic = gMonFrontPic_Hoppip, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Hoppip, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Hoppip, 64, 48), + .backPic = gMonBackPic_Hoppip, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Hoppip), - ICON(Hoppip, 1), - .footprint = gMonFootprint_Hoppip, - LEARNSETS(Hoppip), + .palette = gMonPalette_Hoppip, + .shinyPalette = gMonShinyPalette_Hoppip, + .iconSprite = gMonIcon_Hoppip, + .iconPalIndex = 1, + FOOTPRINT(Hoppip) + .levelUpLearnset = sHoppipLevelUpLearnset, + .teachableLearnset = sHoppipTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_SKIPLOOM}), }, @@ -1743,15 +2004,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 136, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Skiploom"), @@ -1769,18 +2030,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skiploom, 40, 40), + .frontPic = gMonFrontPic_Skiploom, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Skiploom, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Skiploom, 64, 56), + .backPic = gMonBackPic_Skiploom, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Skiploom), - ICON(Skiploom, 1), - .footprint = gMonFootprint_Skiploom, - LEARNSETS(Skiploom), + .palette = gMonPalette_Skiploom, + .shinyPalette = gMonShinyPalette_Skiploom, + .iconSprite = gMonIcon_Skiploom, + .iconPalIndex = 1, + FOOTPRINT(Skiploom) + .levelUpLearnset = sSkiploomLevelUpLearnset, + .teachableLearnset = sSkiploomTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_JUMPLUFF}), }, @@ -1792,15 +2058,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 110, .baseSpAttack = 55, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_6 .expYield = 207, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 203, + #else + .expYield = 176, + #endif .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Jumpluff"), @@ -1818,18 +2092,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jumpluff, 64, 56), + .frontPic = gMonFrontPic_Jumpluff, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jumpluff, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 9, - BACK_PIC(Jumpluff, 56, 64), + .backPic = gMonBackPic_Jumpluff, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Jumpluff), - ICON(Jumpluff, 2), - .footprint = gMonFootprint_Jumpluff, - LEARNSETS(Jumpluff), + .palette = gMonPalette_Jumpluff, + .shinyPalette = gMonShinyPalette_Jumpluff, + .iconSprite = gMonIcon_Jumpluff, + .iconPalIndex = 2, + FOOTPRINT(Jumpluff) + .levelUpLearnset = sJumpluffLevelUpLearnset, + .teachableLearnset = sJumpluffTeachableLearnset, }, #endif //P_FAMILY_HOPPIP @@ -1842,15 +2121,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 94, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Aipom"), @@ -1868,19 +2147,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aipom, 32, 64), - FRONT_PIC_FEMALE(Aipom, 32, 64), + .frontPic = gMonFrontPic_Aipom, + .frontPicFemale = gMonFrontPic_AipomF, + .frontPicSize = MON_COORDS_SIZE(32, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Aipom, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Aipom, 64, 64), - BACK_PIC_FEMALE(Aipom, 64, 64), + .backPic = gMonBackPic_Aipom, + .backPicFemale = gMonBackPic_AipomF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Aipom), - ICON(Aipom, 2), - .footprint = gMonFootprint_Aipom, - LEARNSETS(Aipom), + .palette = gMonPalette_Aipom, + .shinyPalette = gMonShinyPalette_Aipom, + .iconSprite = gMonIcon_Aipom, + .iconPalIndex = 2, + FOOTPRINT(Aipom) + .levelUpLearnset = sAipomLevelUpLearnset, + .teachableLearnset = sAipomTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_DOUBLE_HIT, SPECIES_AMBIPOM}), }, @@ -1893,15 +2179,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 115, .baseSpAttack = 60, .baseSpDefense = 66, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 169, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 169 : 186, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 100, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TECHNICIAN, ABILITY_PICKUP, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ambipom"), @@ -1919,19 +2205,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ambipom, 64, 64), - FRONT_PIC_FEMALE(Ambipom, 64, 64), + .frontPic = gMonFrontPic_Ambipom, + .frontPicFemale = gMonFrontPic_AmbipomF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Ambipom, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Ambipom, 64, 64), - BACK_PIC_FEMALE(Ambipom, 64, 64), + .backPic = gMonBackPic_Ambipom, + .backPicFemale = gMonBackPic_AmbipomF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Ambipom), - ICON(Ambipom, 2), - .footprint = gMonFootprint_Ambipom, - LEARNSETS(Ambipom), + .palette = gMonPalette_Ambipom, + .shinyPalette = gMonShinyPalette_Ambipom, + .iconSprite = gMonIcon_Ambipom, + .iconPalIndex = 2, + FOOTPRINT(Ambipom) + .levelUpLearnset = sAmbipomLevelUpLearnset, + .teachableLearnset = sAmbipomTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_AIPOM @@ -1945,15 +2238,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 235, - .expYield = 36, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 36 : 52, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sunkern"), @@ -1971,17 +2264,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sunkern, 32, 40), + .frontPic = gMonFrontPic_Sunkern, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Sunkern, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Sunkern, 48, 48), + .backPic = gMonBackPic_Sunkern, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Sunkern), - ICON(Sunkern, 1), - .footprint = gMonFootprint_Sunkern, - LEARNSETS(Sunkern), + .palette = gMonPalette_Sunkern, + .shinyPalette = gMonShinyPalette_Sunkern, + .iconSprite = gMonIcon_Sunkern, + .iconPalIndex = 1, + FOOTPRINT(Sunkern) + .levelUpLearnset = sSunkernLevelUpLearnset, + .teachableLearnset = sSunkernTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}), }, @@ -1993,15 +2291,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 105, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 120, - .expYield = 149, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 146, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sunflora"), @@ -2019,17 +2317,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sunflora, 40, 48), + .frontPic = gMonFrontPic_Sunflora, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sunflora, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sunflora, 56, 56), + .backPic = gMonBackPic_Sunflora, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sunflora), - ICON(Sunflora, 1), - .footprint = gMonFootprint_Sunflora, - LEARNSETS(Sunflora), + .palette = gMonPalette_Sunflora, + .shinyPalette = gMonShinyPalette_Sunflora, + .iconSprite = gMonIcon_Sunflora, + .iconPalIndex = 1, + FOOTPRINT(Sunflora) + .levelUpLearnset = sSunfloraLevelUpLearnset, + .teachableLearnset = sSunfloraTeachableLearnset, }, #endif //P_FAMILY_SUNKERN @@ -2042,15 +2345,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 75, - .expYield = 78, - .evYield_Speed = 1, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 78 : 147, + .evYield_Speed = (P_UPDATED_EVS >= GEN_4) ? 1 : 2, + .itemRare = ITEM_WIDE_LENS, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES, ABILITY_FRISK }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Yanma"), @@ -2068,18 +2372,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yanma, 64, 40), + .frontPic = gMonFrontPic_Yanma, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Yanma, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 13, - BACK_PIC(Yanma, 64, 64), + .backPic = gMonBackPic_Yanma, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Yanma), - ICON(Yanma, 1), - .footprint = gMonFootprint_Yanma, - LEARNSETS(Yanma), + .palette = gMonPalette_Yanma, + .shinyPalette = gMonShinyPalette_Yanma, + .iconSprite = gMonIcon_Yanma, + .iconPalIndex = 1, + FOOTPRINT(Yanma) + .levelUpLearnset = sYanmaLevelUpLearnset, + .teachableLearnset = sYanmaTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_YANMEGA}), }, @@ -2092,15 +2401,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 116, .baseSpDefense = 56, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 30, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 198, .evYield_Attack = 2, + .itemRare = ITEM_WIDE_LENS, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Yanmega"), @@ -2118,74 +2428,83 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Yanmega, 64, 56), + .frontPic = gMonFrontPic_Yanmega, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Yanmega, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Yanmega, 64, 56), + .backPic = gMonBackPic_Yanmega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Yanmega), - ICON(Yanmega, 1), - .footprint = gMonFootprint_Yanmega, - LEARNSETS(Yanmega), + .palette = gMonPalette_Yanmega, + .shinyPalette = gMonShinyPalette_Yanmega, + .iconSprite = gMonIcon_Yanmega, + .iconPalIndex = 1, + FOOTPRINT(Yanmega) + .levelUpLearnset = sYanmegaLevelUpLearnset, + .teachableLearnset = sYanmegaTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_YANMA #if P_FAMILY_WOOPER -#define WOOPER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 15, \ - .baseSpAttack = 25, \ - .baseSpDefense = 25, \ - .catchRate = 255, \ - .expYield = 42, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .speciesName = _("Wooper"), \ - .cryId = CRY_WOOPER, \ - .natDexNum = NATIONAL_DEX_WOOPER, \ - .height = 4, \ - .pokemonScale = 479, \ - .pokemonOffset = 21, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Wooper, \ - .formSpeciesIdTable = sWooperFormSpeciesIdTable - [SPECIES_WOOPER] = { - WOOPER_MISC_INFO, - .types = { TYPE_WATER, TYPE_GROUND }, + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 52, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wooper"), + .cryId = CRY_WOOPER, + .natDexNum = NATIONAL_DEX_WOOPER, .categoryName = _("Water Fish"), + .height = 4, .weight = 85, .description = COMPOUND_STRING( "Wooper usually live in water but come\n" "out onto land seeking food occasionally.\n" "On land, they coat their bodies with a\n" "gooey, toxic film."), - FRONT_PIC(Wooper, 40, 32), - FRONT_PIC_FEMALE(Wooper, 40, 32), + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Wooper, + .frontPicFemale = gMonFrontPic_WooperF, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Wooper, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wooper, 64, 40), - BACK_PIC_FEMALE(Wooper, 64, 40), + .backPic = gMonBackPic_Wooper, + .backPicFemale = gMonBackPic_WooperF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wooper), - ICON(Wooper, 0), - LEARNSETS(Wooper), + .palette = gMonPalette_Wooper, + .shinyPalette = gMonShinyPalette_Wooper, + .iconSprite = gMonIcon_Wooper, + .iconPalIndex = 0, + FOOTPRINT(Wooper) + .levelUpLearnset = sWooperLevelUpLearnset, + .teachableLearnset = sWooperTeachableLearnset, + .formSpeciesIdTable = sWooperFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_QUAGSIRE}), }, @@ -2197,15 +2516,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 90, - .expYield = 151, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 151 : 137, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quagsire"), @@ -2223,46 +2542,81 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quagsire, 64, 56), - FRONT_PIC_FEMALE(Quagsire, 64, 56), + .frontPic = gMonFrontPic_Quagsire, + .frontPicFemale = gMonFrontPic_QuagsireF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Quagsire, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Quagsire, 64, 56), - BACK_PIC_FEMALE(Quagsire, 64, 56), + .backPic = gMonBackPic_Quagsire, + .backPicFemale = gMonBackPic_QuagsireF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Quagsire), - ICON(Quagsire, 0), - .footprint = gMonFootprint_Quagsire, - LEARNSETS(Quagsire), + .palette = gMonPalette_Quagsire, + .shinyPalette = gMonShinyPalette_Quagsire, + .iconSprite = gMonIcon_Quagsire, + .iconPalIndex = 0, + FOOTPRINT(Quagsire) + .levelUpLearnset = sQuagsireLevelUpLearnset, + .teachableLearnset = sQuagsireTeachableLearnset, }, #if P_PALDEAN_FORMS [SPECIES_WOOPER_PALDEAN] = { - WOOPER_MISC_INFO, - .types = { TYPE_POISON, TYPE_GROUND }, + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 52, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BROWN, - .isPaldeanForm = TRUE, + .speciesName = _("Wooper"), + .cryId = CRY_WOOPER, + .natDexNum = NATIONAL_DEX_WOOPER, .categoryName = _("Poison Fish"), + .height = 4, .weight = 110, .description = COMPOUND_STRING( "After losing a territorial struggle,\n" "Wooper began living on land.\n" "The Pokémon changed over time, developing\n" "a poisonous film to protect its body."), - FRONT_PIC(WooperPaldean, 40, 32), + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WooperPaldean, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_WooperPaldean, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WooperPaldean, 64, 40), + .backPic = gMonBackPic_WooperPaldean, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(WooperPaldean), - //ICON(WooperPaldean, 0), - LEARNSETS(WooperPaldean), + .palette = gMonPalette_WooperPaldean, + .shinyPalette = gMonShinyPalette_WooperPaldean, + .iconSprite = gMonIcon_WooperPaldean, + .iconPalIndex = 2, + FOOTPRINT(Wooper) + .isPaldeanForm = TRUE, + .levelUpLearnset = sWooperPaldeanLevelUpLearnset, + .teachableLearnset = sWooperPaldeanTeachableLearnset, + .formSpeciesIdTable = sWooperFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CLODSIRE}), }, @@ -2274,7 +2628,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 45, .baseSpDefense = 100, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 90, .expYield = 151, .evYield_HP = 2, @@ -2282,7 +2636,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Clodsire"), @@ -2300,17 +2654,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clodsire, 64, 64), + .frontPic = gMonFrontPic_Clodsire, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Clodsire, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clodsire, 64, 64), + .backPic = gMonBackPic_Clodsire, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Clodsire), - ICON(Clodsire, 2), - //.footprint = gMonFootprint_Clodsire, - LEARNSETS(Clodsire), + .palette = gMonPalette_Clodsire, + .shinyPalette = gMonShinyPalette_Clodsire, + .iconSprite = gMonIcon_Clodsire, + .iconPalIndex = 0, + //FOOTPRINT(Clodsire) + .levelUpLearnset = sClodsireLevelUpLearnset, + .teachableLearnset = sClodsireTeachableLearnset, }, #endif //P_PALDEAN_FORMS #endif //P_FAMILY_WOOPER @@ -2324,15 +2683,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 91, .baseSpAttack = 85, .baseSpDefense = 42, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, - .expYield = 81, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 81 : 107, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Murkrow"), @@ -2350,21 +2709,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 1, - FRONT_PIC(Murkrow, 48, 40), - FRONT_PIC_FEMALE(Murkrow, 48, 40), + .frontPic = gMonFrontPic_Murkrow, + .frontPicFemale = gMonFrontPic_MurkrowF, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Murkrow, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, - BACK_PIC(Murkrow, 40, 56), - BACK_PIC_FEMALE(Murkrow, 40, 56), + .backPic = gMonBackPic_Murkrow, + .backPicFemale = gMonBackPic_MurkrowF, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Murkrow), - ICON(Murkrow, 2), - .footprint = gMonFootprint_Murkrow, - LEARNSETS(Murkrow), - .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HONCHKROW}), + .palette = gMonPalette_Murkrow, + .shinyPalette = gMonShinyPalette_Murkrow, + .iconSprite = gMonIcon_Murkrow, + .iconPalIndex = 2, + FOOTPRINT(Murkrow) + .levelUpLearnset = sMurkrowLevelUpLearnset, + .teachableLearnset = sMurkrowTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_HONCHKROW}), }, #if P_GEN_4_CROSS_EVOS @@ -2376,15 +2742,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 71, .baseSpAttack = 105, .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 187, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Honchkrow"), @@ -2402,17 +2768,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Honchkrow, 64, 56), + .frontPic = gMonFrontPic_Honchkrow, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Honchkrow, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Honchkrow, 64, 48), + .backPic = gMonBackPic_Honchkrow, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Honchkrow), - ICON(Honchkrow, 2), - .footprint = gMonFootprint_Honchkrow, - LEARNSETS(Honchkrow), + .palette = gMonPalette_Honchkrow, + .shinyPalette = gMonShinyPalette_Honchkrow, + .iconSprite = gMonIcon_Honchkrow, + .iconPalIndex = 2, + FOOTPRINT(Honchkrow) + .levelUpLearnset = sHonchkrowLevelUpLearnset, + .teachableLearnset = sHonchkrowTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MURKROW @@ -2426,16 +2797,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 85, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, - .expYield = 87, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 87 : 147, + .evYield_SpAttack = (P_UPDATED_EVS >= GEN_4) ? 0 : 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Misdreavus"), .cryId = CRY_MISDREAVUS, @@ -2452,19 +2824,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Misdreavus, 48, 48), + .frontPic = gMonFrontPic_Misdreavus, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Misdreavus, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 12, - BACK_PIC(Misdreavus, 56, 48), + .backPic = gMonBackPic_Misdreavus, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Misdreavus), - ICON(Misdreavus, 0), - .footprint = gMonFootprint_Misdreavus, - LEARNSETS(Misdreavus), - .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_MISMAGIUS}), + .palette = gMonPalette_Misdreavus, + .shinyPalette = gMonShinyPalette_Misdreavus, + .iconSprite = gMonIcon_Misdreavus, + .iconPalIndex = 0, + FOOTPRINT(Misdreavus) + .levelUpLearnset = sMisdreavusLevelUpLearnset, + .teachableLearnset = sMisdreavusTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_MISMAGIUS}), }, #if P_GEN_4_CROSS_EVOS @@ -2476,17 +2853,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 105, .baseSpAttack = 105, .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 187, .evYield_SpAttack = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mismagius"), .cryId = CRY_MISMAGIUS, @@ -2503,305 +2880,109 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mismagius, 56, 64), + .frontPic = gMonFrontPic_Mismagius, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Mismagius, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Mismagius, 56, 64), + .backPic = gMonBackPic_Mismagius, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Mismagius), - ICON(Mismagius, 2), - .footprint = gMonFootprint_Mismagius, - LEARNSETS(Mismagius), + .palette = gMonPalette_Mismagius, + .shinyPalette = gMonShinyPalette_Mismagius, + .iconSprite = gMonIcon_Mismagius, + .iconPalIndex = 2, + FOOTPRINT(Mismagius) + .levelUpLearnset = sMismagiusLevelUpLearnset, + .teachableLearnset = sMismagiusTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MISDREAVUS #if P_FAMILY_UNOWN -#define UNOWN_MISC_INFO(letter) \ - .baseHP = 48, \ - .baseAttack = 72, \ - .baseDefense = 48, \ - .baseSpeed = 48, \ - .baseSpAttack = 72, \ - .baseSpDefense = 48, \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 225, \ - .expYield = 118, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Unown"), \ - .cryId = CRY_UNOWN, \ - .natDexNum = NATIONAL_DEX_UNOWN, \ - .categoryName = _("Symbol"), \ - .height = 5, \ - .weight = 50, \ - .description = gUnownPokedexText, \ - .pokemonScale = 411, \ - .pokemonOffset = 2, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 16, \ - .frontAnimFrames = sAnims_Unown, \ - .frontAnimId = ANIM_ZIGZAG_FAST, \ - .enemyMonElevation = 8, \ - .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - PALETTES(Unown), \ - ICON(Unown ##letter, 0), \ - .footprint = gMonFootprint_Unown, \ - LEARNSETS(Unown), \ - .formSpeciesIdTable = sUnownFormSpeciesIdTable +#define UNOWN_MISC_INFO(letter, _noFlip, frontWidth, frontHeight, backWidth, backHeight, backYOffset) \ + { \ + .baseHP = 48, \ + .baseAttack = 72, \ + .baseDefense = 48, \ + .baseSpeed = 48, \ + .baseSpAttack = 72, \ + .baseSpDefense = 48, \ + .types = MON_TYPES(TYPE_PSYCHIC), \ + .catchRate = 225, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 118 : 61, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = _noFlip, \ + .speciesName = _("Unown"), \ + .cryId = CRY_UNOWN, \ + .natDexNum = NATIONAL_DEX_UNOWN, \ + .categoryName = _("Symbol"), \ + .height = 5, \ + .weight = 50, \ + .description = gUnownPokedexText, \ + .pokemonScale = 411, \ + .pokemonOffset = 2, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Unown ##letter, \ + .frontPicSize = MON_COORDS_SIZE(frontWidth, frontHeight), \ + .frontPicYOffset = 16, \ + .frontAnimFrames = sAnims_Unown, \ + .frontAnimId = ANIM_ZIGZAG_FAST, \ + .enemyMonElevation = 8, \ + .backPic = gMonBackPic_Unown ##letter, \ + .backPicSize = MON_COORDS_SIZE(backWidth, backHeight), \ + .backPicYOffset = backYOffset, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + .palette = gMonPalette_Unown, \ + .shinyPalette = gMonShinyPalette_Unown, \ + .iconSprite = gMonIcon_Unown ##letter, \ + .iconPalIndex = 0, \ + FOOTPRINT(Unown) \ + .levelUpLearnset = sUnownLevelUpLearnset, \ + .teachableLearnset = sUnownTeachableLearnset, \ + .tmIlliterate = TRUE, \ + .formSpeciesIdTable = sUnownFormSpeciesIdTable, \ + } - [SPECIES_UNOWN] = - { - UNOWN_MISC_INFO(A), - FRONT_PIC(UnownA, 24, 40), - BACK_PIC(UnownA, 24, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_B] = - { - UNOWN_MISC_INFO(B), - .noFlip = TRUE, - FRONT_PIC(UnownB, 24, 32), - BACK_PIC(UnownB, 40, 48), - .backPicYOffset = 9, - }, - - [SPECIES_UNOWN_C] = - { - UNOWN_MISC_INFO(C), - .noFlip = TRUE, - FRONT_PIC(UnownC, 32, 32), - BACK_PIC(UnownC, 48, 56), - .backPicYOffset = 6, - }, - - [SPECIES_UNOWN_D] = - { - UNOWN_MISC_INFO(D), - .noFlip = TRUE, - FRONT_PIC(UnownD, 32, 32), - BACK_PIC(UnownD, 40, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_E] = - { - UNOWN_MISC_INFO(E), - .noFlip = TRUE, - FRONT_PIC(UnownE, 32, 32), - BACK_PIC(UnownE, 40, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_F] = - { - UNOWN_MISC_INFO(F), - .noFlip = TRUE, - FRONT_PIC(UnownF, 32, 32), - BACK_PIC(UnownF, 48, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_G] = - { - UNOWN_MISC_INFO(G), - .noFlip = TRUE, - FRONT_PIC(UnownG, 24, 40), - BACK_PIC(UnownG, 40, 56), - .backPicYOffset = 5, - }, - - [SPECIES_UNOWN_H] = - { - UNOWN_MISC_INFO(H), - .noFlip = TRUE, - FRONT_PIC(UnownH, 32, 32), - BACK_PIC(UnownH, 48, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_I] = - { - UNOWN_MISC_INFO(I), - FRONT_PIC(UnownI, 24, 32), - BACK_PIC(UnownI, 24, 56), - .backPicYOffset = 7, - }, - - [SPECIES_UNOWN_J] = - { - UNOWN_MISC_INFO(J), - .noFlip = TRUE, - FRONT_PIC(UnownJ, 24, 32), - BACK_PIC(UnownJ, 32, 48), - .backPicYOffset = 9, - }, - - [SPECIES_UNOWN_K] = - { - UNOWN_MISC_INFO(K), - .noFlip = TRUE, - FRONT_PIC(UnownK, 32, 32), - BACK_PIC(UnownK, 40, 56), - .backPicYOffset = 7, - }, - - [SPECIES_UNOWN_L] = - { - UNOWN_MISC_INFO(L), - .noFlip = TRUE, - FRONT_PIC(UnownL, 24, 32), - BACK_PIC(UnownL, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_M] = - { - UNOWN_MISC_INFO(M), - FRONT_PIC(UnownM, 32, 32), - BACK_PIC(UnownM, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_N] = - { - UNOWN_MISC_INFO(N), - .noFlip = TRUE, - FRONT_PIC(UnownN, 32, 24), - BACK_PIC(UnownN, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_O] = - { - UNOWN_MISC_INFO(O), - FRONT_PIC(UnownO, 32, 32), - BACK_PIC(UnownO, 48, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_P] = - { - UNOWN_MISC_INFO(P), - .noFlip = TRUE, - FRONT_PIC(UnownP, 24, 32), - BACK_PIC(UnownP, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_Q] = - { - UNOWN_MISC_INFO(Q), - .noFlip = TRUE, - FRONT_PIC(UnownQ, 32, 24), - BACK_PIC(UnownQ, 40, 40), - .backPicYOffset = 15, - }, - - [SPECIES_UNOWN_R] = - { - UNOWN_MISC_INFO(R), - .noFlip = TRUE, - FRONT_PIC(UnownR, 24, 32), - BACK_PIC(UnownR, 32, 40), - .backPicYOffset = 12, - }, - - [SPECIES_UNOWN_S] = - { - UNOWN_MISC_INFO(S), - .noFlip = TRUE, - FRONT_PIC(UnownS, 32, 40), - BACK_PIC(UnownS, 40, 56), - .backPicYOffset = 4, - }, - - [SPECIES_UNOWN_T] = - { - UNOWN_MISC_INFO(T), - FRONT_PIC(UnownT, 24, 32), - BACK_PIC(UnownT, 32, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_U] = - { - UNOWN_MISC_INFO(U), - FRONT_PIC(UnownU, 32, 32), - BACK_PIC(UnownU, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_V] = - { - UNOWN_MISC_INFO(V), - .noFlip = TRUE, - FRONT_PIC(UnownV, 32, 32), - BACK_PIC(UnownV, 40, 48), - .backPicYOffset = 11, - }, - - [SPECIES_UNOWN_W] = - { - UNOWN_MISC_INFO(W), - FRONT_PIC(UnownW, 32, 32), - BACK_PIC(UnownW, 40, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_X] = - { - UNOWN_MISC_INFO(X), - FRONT_PIC(UnownX, 24, 24), - BACK_PIC(UnownX, 40, 40), - .backPicYOffset = 15, - }, - - [SPECIES_UNOWN_Y] = - { - UNOWN_MISC_INFO(Y), - FRONT_PIC(UnownY, 24, 32), - BACK_PIC(UnownY, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_Z] = - { - UNOWN_MISC_INFO(Z), - .noFlip = TRUE, - FRONT_PIC(UnownZ, 24, 32), - BACK_PIC(UnownZ, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_EMARK] = - { - UNOWN_MISC_INFO(ExclamationMark), - FRONT_PIC(UnownExclamationMark, 24, 40), - BACK_PIC(UnownExclamationMark, 24, 56), - .backPicYOffset = 6, - }, - - [SPECIES_UNOWN_QMARK] = - { - UNOWN_MISC_INFO(QuestionMark), - .noFlip = TRUE, - FRONT_PIC(UnownQuestionMark, 24, 40), - BACK_PIC(UnownQuestionMark, 32, 56), - .backPicYOffset = 6, - }, + [SPECIES_UNOWN] = UNOWN_MISC_INFO(A, FALSE, 24, 40, 24, 48, 8 ), + [SPECIES_UNOWN_B] = UNOWN_MISC_INFO(B, TRUE, 24, 32, 40, 48, 9 ), + [SPECIES_UNOWN_C] = UNOWN_MISC_INFO(C, TRUE, 32, 32, 48, 56, 6 ), + [SPECIES_UNOWN_D] = UNOWN_MISC_INFO(D, TRUE, 32, 32, 40, 48, 8 ), + [SPECIES_UNOWN_E] = UNOWN_MISC_INFO(E, TRUE, 32, 32, 40, 48, 10 ), + [SPECIES_UNOWN_F] = UNOWN_MISC_INFO(F, TRUE, 32, 32, 48, 48, 10 ), + [SPECIES_UNOWN_G] = UNOWN_MISC_INFO(G, TRUE, 24, 40, 40, 56, 5 ), + [SPECIES_UNOWN_H] = UNOWN_MISC_INFO(H, TRUE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_I] = UNOWN_MISC_INFO(I, FALSE, 24, 32, 24, 56, 7 ), + [SPECIES_UNOWN_J] = UNOWN_MISC_INFO(J, TRUE, 24, 32, 32, 48, 9 ), + [SPECIES_UNOWN_K] = UNOWN_MISC_INFO(K, TRUE, 32, 32, 40, 56, 7 ), + [SPECIES_UNOWN_L] = UNOWN_MISC_INFO(L, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_M] = UNOWN_MISC_INFO(M, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_N] = UNOWN_MISC_INFO(N, TRUE, 32, 24, 48, 40, 13 ), + [SPECIES_UNOWN_O] = UNOWN_MISC_INFO(O, FALSE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_P] = UNOWN_MISC_INFO(P, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Q] = UNOWN_MISC_INFO(Q, TRUE, 32, 24, 40, 40, 15 ), + [SPECIES_UNOWN_R] = UNOWN_MISC_INFO(R, TRUE, 24, 32, 32, 40, 12 ), + [SPECIES_UNOWN_S] = UNOWN_MISC_INFO(S, TRUE, 32, 40, 40, 56, 4 ), + [SPECIES_UNOWN_T] = UNOWN_MISC_INFO(T, FALSE, 24, 32, 32, 40, 13 ), + [SPECIES_UNOWN_U] = UNOWN_MISC_INFO(U, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_V] = UNOWN_MISC_INFO(V, TRUE, 32, 32, 40, 48, 11 ), + [SPECIES_UNOWN_W] = UNOWN_MISC_INFO(W, FALSE, 32, 32, 40, 40, 13 ), + [SPECIES_UNOWN_X] = UNOWN_MISC_INFO(X, FALSE, 24, 24, 40, 40, 15 ), + [SPECIES_UNOWN_Y] = UNOWN_MISC_INFO(Y, FALSE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Z] = UNOWN_MISC_INFO(Z, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_EMARK] = UNOWN_MISC_INFO(ExclamationMark, FALSE, 24, 40, 24, 56, 6 ), + [SPECIES_UNOWN_QMARK] = UNOWN_MISC_INFO(QuestionMark, TRUE, 24, 40, 32, 56, 6 ), #endif //P_FAMILY_UNOWN #if P_FAMILY_WOBBUFFET @@ -2814,15 +2995,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 23, .baseSpAttack = 23, .baseSpDefense = 48, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 125, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 44, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wynaut"), @@ -2840,18 +3021,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wynaut, 48, 40), + .frontPic = gMonFrontPic_Wynaut, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wynaut, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, - BACK_PIC(Wynaut, 48, 48), + .backPic = gMonBackPic_Wynaut, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Wynaut), - ICON(Wynaut, 0), - .footprint = gMonFootprint_Wynaut, - LEARNSETS(Wynaut), + .palette = gMonPalette_Wynaut, + .shinyPalette = gMonShinyPalette_Wynaut, + .iconSprite = gMonIcon_Wynaut, + .iconPalIndex = 0, + FOOTPRINT(Wynaut) + .tmIlliterate = TRUE, + .levelUpLearnset = sWynautLevelUpLearnset, + .teachableLearnset = sWynautTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_WOBBUFFET}), }, #endif //P_GEN_3_CROSS_EVOS @@ -2864,15 +3051,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 33, .baseSpAttack = 33, .baseSpDefense = 58, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 177, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wobbuffet"), @@ -2890,22 +3077,31 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wobbuffet, 64, 56), - FRONT_PIC_FEMALE(Wobbuffet, 64, 56), + .frontPic = gMonFrontPic_Wobbuffet, + .frontPicFemale = gMonFrontPic_WobbuffetF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Wobbuffet, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Wobbuffet, 56, 56), - BACK_PIC_FEMALE(Wobbuffet, 56, 56), + .backPic = gMonBackPic_Wobbuffet, + .backPicFemale = gMonBackPic_WobbuffetF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wobbuffet), - ICON(Wobbuffet, 0), + .palette = gMonPalette_Wobbuffet, + .shinyPalette = gMonShinyPalette_Wobbuffet, + .iconSprite = gMonIcon_Wobbuffet, + .iconPalIndex = 0, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Wobbuffet, 0), + .iconSpriteFemale = gMonIcon_WobbuffetF, + .iconPalIndexFemale = 0, #endif - .footprint = gMonFootprint_Wobbuffet, - LEARNSETS(Wobbuffet), + FOOTPRINT(Wobbuffet) + .tmIlliterate = TRUE, + .levelUpLearnset = sWobbuffetLevelUpLearnset, + .teachableLearnset = sWobbuffetTeachableLearnset, }, #endif //P_FAMILY_WOBBUFFET @@ -2918,15 +3114,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 60, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 149, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Girafarig"), @@ -2944,19 +3140,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Girafarig, 56, 64), - FRONT_PIC_FEMALE(Girafarig, 56, 64), + .frontPic = gMonFrontPic_Girafarig, + .frontPicFemale = gMonFrontPic_GirafarigF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Girafarig, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Girafarig, 64, 64), - BACK_PIC_FEMALE(Girafarig, 64, 64), + .backPic = gMonBackPic_Girafarig, + .backPicFemale = gMonBackPic_GirafarigF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Girafarig), - ICON(Girafarig, 1), - .footprint = gMonFootprint_Girafarig, - LEARNSETS(Girafarig), + .palette = gMonPalette_Girafarig, + .shinyPalette = gMonShinyPalette_Girafarig, + .iconSprite = gMonIcon_Girafarig, + .iconPalIndex = 1, + FOOTPRINT(Girafarig) + .levelUpLearnset = sGirafarigLevelUpLearnset, + .teachableLearnset = sGirafarigTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_TWIN_BEAM, SPECIES_FARIGIRAF}), }, @@ -2969,7 +3172,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 260, .evYield_HP = 3, @@ -2977,7 +3180,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUD_CHEW, ABILITY_ARMOR_TAIL, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Farigiraf"), @@ -2995,17 +3198,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Farigiraf, 64, 64), + .frontPic = gMonFrontPic_Farigiraf, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Farigiraf, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Farigiraf, 64, 64), + .backPic = gMonBackPic_Farigiraf, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Farigiraf), - ICON(Farigiraf, 0), - //.footprint = gMonFootprint_Farigiraf, - LEARNSETS(Farigiraf), + .palette = gMonPalette_Farigiraf, + .shinyPalette = gMonShinyPalette_Farigiraf, + .iconSprite = gMonIcon_Farigiraf, + .iconPalIndex = 0, + //FOOTPRINT(Farigiraf) + .levelUpLearnset = sFarigirafLevelUpLearnset, + .teachableLearnset = sFarigirafTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_GIRAFARIG @@ -3019,15 +3227,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 15, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 60, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pineco"), @@ -3045,17 +3253,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pineco, 40, 40), + .frontPic = gMonFrontPic_Pineco, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pineco, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Pineco, 56, 40), + .backPic = gMonBackPic_Pineco, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Pineco), - ICON(Pineco, 0), - .footprint = gMonFootprint_Pineco, - LEARNSETS(Pineco), + .palette = gMonPalette_Pineco, + .shinyPalette = gMonShinyPalette_Pineco, + .iconSprite = gMonIcon_Pineco, + .iconPalIndex = 0, + FOOTPRINT(Pineco) + .levelUpLearnset = sPinecoLevelUpLearnset, + .teachableLearnset = sPinecoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_FORRETRESS}), }, @@ -3067,15 +3280,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 75, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 118, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Forretress"), @@ -3093,17 +3306,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Forretress, 64, 48), + .frontPic = gMonFrontPic_Forretress, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Forretress, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Forretress, 64, 32), + .backPic = gMonBackPic_Forretress, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Forretress), - ICON(Forretress, 2), - .footprint = gMonFootprint_Forretress, - LEARNSETS(Forretress), + .palette = gMonPalette_Forretress, + .shinyPalette = gMonShinyPalette_Forretress, + .iconSprite = gMonIcon_Forretress, + .iconPalIndex = 2, + FOOTPRINT(Forretress) + .levelUpLearnset = sForretressLevelUpLearnset, + .teachableLearnset = sForretressTeachableLearnset, }, #endif //P_FAMILY_PINECO @@ -3116,15 +3334,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 145, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 125, + #else + .expYield = 75, + #endif .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dunsparce"), @@ -3142,65 +3366,51 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dunsparce, 48, 48), + .frontPic = gMonFrontPic_Dunsparce, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Dunsparce, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 10, - BACK_PIC(Dunsparce, 56, 32), + .backPic = gMonBackPic_Dunsparce, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dunsparce), - ICON(Dunsparce, 0), - .footprint = gMonFootprint_Dunsparce, - LEARNSETS(Dunsparce), + .palette = gMonPalette_Dunsparce, + .shinyPalette = gMonShinyPalette_Dunsparce, + .iconSprite = gMonIcon_Dunsparce, + .iconPalIndex = 0, + FOOTPRINT(Dunsparce) + .levelUpLearnset = sDunsparceLevelUpLearnset, + .teachableLearnset = sDunsparceTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE_TWO_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_TWO_SEGMENT}, {EVO_MOVE_THREE_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_THREE_SEGMENT}), }, #if P_GEN_9_CROSS_EVOS -#define DUDUNSPARCE_MISC_INFO(segments) \ - .baseHP = 125, \ - .baseAttack = 100, \ - .baseDefense = 80, \ - .baseSpeed = 55, \ - .baseSpAttack = 85, \ - .baseSpDefense = 75, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .expYield = 182, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Dudunsprce"), \ - .cryId = CRY_DUDUNSPARCE, \ - .natDexNum = NATIONAL_DEX_DUDUNSPARCE, \ - .categoryName = _("Land Snake"), \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Dudunsparce ##segments##Segment, 64, 64), \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Dudunsparce, \ - BACK_PIC(Dudunsparce ##segments##Segment, 64, 64), \ - .backPicYOffset = 11, \ - PALETTES(Dudunsparce), \ - ICON(Dudunsparce, 0), \ - LEARNSETS(Dudunsparce), \ - .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Dudunsparce, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = { - DUDUNSPARCE_MISC_INFO(Two), + .baseHP = 125, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = 182, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Dudunsprce"), + .cryId = CRY_DUDUNSPARCE, + .natDexNum = NATIONAL_DEX_DUDUNSPARCE, + .categoryName = _("Land Snake"), .height = 36, .weight = 392, .description = COMPOUND_STRING( @@ -3208,11 +3418,52 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = "make its nest by boring holes into\n" "bedrock deep underground. The nest\n" "can reach lengths of over six miles."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DudunsparceTwoSegment, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Dudunsparce, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_DudunsparceTwoSegment, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Dudunsparce, + .shinyPalette = gMonShinyPalette_Dudunsparce, + .iconSprite = gMonIcon_Dudunsparce, + .iconPalIndex = 0, + //FOOTPRINT(Dudunsparce), + .levelUpLearnset = sDudunsparceLevelUpLearnset, + .teachableLearnset = sDudunsparceTeachableLearnset, + .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable, }, [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = { - DUDUNSPARCE_MISC_INFO(Three), + .baseHP = 125, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = 182, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Dudunsprce"), + .cryId = CRY_DUDUNSPARCE, + .natDexNum = NATIONAL_DEX_DUDUNSPARCE, + .categoryName = _("Land Snake"), .height = 45, .weight = 474, .description = COMPOUND_STRING( @@ -3220,6 +3471,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = "number of segments a\n" "Dudunsparce's body has is determined by the\n" "Pokémon's genes."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DudunsparceThreeSegment, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Dudunsparce, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_DudunsparceThreeSegment, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Dudunsparce, + .shinyPalette = gMonShinyPalette_Dudunsparce, + .iconSprite = gMonIcon_Dudunsparce, + .iconPalIndex = 0, + //FOOTPRINT(Dudunsparce), + .levelUpLearnset = sDudunsparceLevelUpLearnset, + .teachableLearnset = sDudunsparceTeachableLearnset, + .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DUNSPARCE @@ -3233,15 +3505,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), .catchRate = 60, - .expYield = 86, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 108, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_IMMUNITY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gligar"), @@ -3259,21 +3531,29 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gligar, 56, 56), - FRONT_PIC_FEMALE(Gligar, 56, 56), + .frontPic = gMonFrontPic_Gligar, + .frontPicFemale = gMonFrontPic_GligarF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Gligar, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 8, - BACK_PIC(Gligar, 64, 64), - BACK_PIC_FEMALE(Gligar, 64, 64), + .backPic = gMonBackPic_Gligar, + .backPicFemale = gMonBackPic_GligarF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Gligar), - ICON(Gligar, 0), - .footprint = gMonFootprint_Gligar, - LEARNSETS(Gligar), - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GLISCOR}), + .palette = gMonPalette_Gligar, + .shinyPalette = gMonShinyPalette_Gligar, + .iconSprite = gMonIcon_Gligar, + .iconPalIndex = 0, + FOOTPRINT(Gligar) + .levelUpLearnset = sGligarLevelUpLearnset, + .teachableLearnset = sGligarTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}), }, #if P_GEN_4_CROSS_EVOS @@ -3285,15 +3565,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 45, .baseSpDefense = 75, - .types = { TYPE_GROUND, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), .catchRate = 30, - .expYield = 179, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 192, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_POISON_HEAL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gliscor"), @@ -3311,18 +3591,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Gliscor, 64, 56), + .frontPic = gMonFrontPic_Gliscor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gliscor, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 9, - BACK_PIC(Gliscor, 64, 48), + .backPic = gMonBackPic_Gliscor, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Gliscor), - ICON(Gliscor, 2), - .footprint = gMonFootprint_Gliscor, - LEARNSETS(Gliscor), + .palette = gMonPalette_Gliscor, + .shinyPalette = gMonShinyPalette_Gliscor, + .iconSprite = gMonIcon_Gliscor, + .iconPalIndex = 2, + FOOTPRINT(Gliscor) + .levelUpLearnset = sGliscorLevelUpLearnset, + .teachableLearnset = sGliscorTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_GLIGAR @@ -3336,19 +3621,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY }, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_NORMAL), + #endif .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Snubbull"), @@ -3366,17 +3651,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snubbull, 40, 40), + .frontPic = gMonFrontPic_Snubbull, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snubbull, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snubbull, 56, 40), + .backPic = gMonBackPic_Snubbull, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Snubbull), - ICON(Snubbull, 0), - .footprint = gMonFootprint_Snubbull, - LEARNSETS(Snubbull), + .palette = gMonPalette_Snubbull, + .shinyPalette = gMonShinyPalette_Snubbull, + .iconSprite = gMonIcon_Snubbull, + .iconPalIndex = 0, + FOOTPRINT(Snubbull) + .levelUpLearnset = sSnubbullLevelUpLearnset, + .teachableLearnset = sSnubbullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_GRANBULL}), }, @@ -3388,19 +3678,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 60, .baseSpDefense = 60, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY }, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_NORMAL), + #endif .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 178, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Granbull"), @@ -3418,97 +3708,145 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Granbull, 56, 56), + .frontPic = gMonFrontPic_Granbull, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Granbull, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Granbull, 56, 48), + .backPic = gMonBackPic_Granbull, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Granbull), - ICON(Granbull, 2), - .footprint = gMonFootprint_Granbull, - LEARNSETS(Granbull), + .palette = gMonPalette_Granbull, + .shinyPalette = gMonShinyPalette_Granbull, + .iconSprite = gMonIcon_Granbull, + .iconPalIndex = 2, + FOOTPRINT(Granbull) + .levelUpLearnset = sGranbullLevelUpLearnset, + .teachableLearnset = sGranbullTeachableLearnset, }, #endif //P_FAMILY_SNUBBULL #if P_FAMILY_QWILFISH -#define QWILFISH_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 95, \ - .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, \ - .baseSpeed = 85, \ - .baseSpAttack = 55, \ - .baseSpDefense = 55, \ - .catchRate = 45, \ - .expYield = 88, \ - .evYield_Attack = 1, \ - .itemRare = ITEM_POISON_BARB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, \ - .speciesName = _("Qwilfish"), \ - .cryId = CRY_QWILFISH, \ - .natDexNum = NATIONAL_DEX_QWILFISH, \ - .categoryName = _("Balloon"), \ - .height = 5, \ - .weight = 39, \ - .pokemonScale = 430, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Qwilfish, \ - .formSpeciesIdTable = sQwilfishFormSpeciesIdTable + +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define QWILFISH_EXP_YIELD 88 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define QWILFISH_EXP_YIELD 86 +#else + #define QWILFISH_EXP_YIELD 100 +#endif [SPECIES_QWILFISH] = { - QWILFISH_MISC_INFO, - .types = { TYPE_WATER, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 95, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), + .catchRate = 45, + .expYield = QWILFISH_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Qwilfish"), + .cryId = CRY_QWILFISH, + .natDexNum = NATIONAL_DEX_QWILFISH, + .categoryName = _("Balloon"), + .height = 5, + .weight = 39, .description = COMPOUND_STRING( "A Qwilfish uses the pressure of water\n" "it swallows to shoot toxic quills all at\n" "once from all over its body. It finds\n" "swimming to be somewhat challenging."), - FRONT_PIC(Qwilfish, 40, 48), + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Qwilfish, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Qwilfish, .frontAnimId = ANIM_GROW_IN_STAGES, .frontAnimDelay = 39, - BACK_PIC(Qwilfish, 56, 56), + .backPic = gMonBackPic_Qwilfish, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Qwilfish), - ICON(Qwilfish, 0), - LEARNSETS(Qwilfish), + .palette = gMonPalette_Qwilfish, + .shinyPalette = gMonShinyPalette_Qwilfish, + .iconSprite = gMonIcon_Qwilfish, + .iconPalIndex = 0, + FOOTPRINT(Qwilfish) + .levelUpLearnset = sQwilfishLevelUpLearnset, + .teachableLearnset = sQwilfishTeachableLearnset, + .formSpeciesIdTable = sQwilfishFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_QWILFISH_HISUIAN] = { - QWILFISH_MISC_INFO, - .types = { TYPE_DARK, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 95, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_DARK, TYPE_POISON), + .catchRate = 45, + .expYield = QWILFISH_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Qwilfish"), + .cryId = CRY_QWILFISH, + .natDexNum = NATIONAL_DEX_QWILFISH, + .categoryName = _("Balloon"), + .height = 5, + .weight = 39, .description = COMPOUND_STRING( "A form of Qwilfish from the distant past.\n" "Fishers detest this troublesome Pokémon\n" "because it sprays poison from its spines,\n" "getting it everywhere."), - FRONT_PIC(QwilfishHisuian, 48, 40), + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_QwilfishHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_QwilfishHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(QwilfishHisuian, 56, 56), + .backPic = gMonBackPic_QwilfishHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(QwilfishHisuian), - ICON(QwilfishHisuian, 0), - LEARNSETS(QwilfishHisuian), + .palette = gMonPalette_QwilfishHisuian, + .shinyPalette = gMonShinyPalette_QwilfishHisuian, + .iconSprite = gMonIcon_QwilfishHisuian, + .iconPalIndex = 1, + FOOTPRINT(Qwilfish) .isHisuianForm = TRUE, + .levelUpLearnset = sQwilfishHisuianLevelUpLearnset, + .teachableLearnset = sQwilfishHisuianTeachableLearnset, + .formSpeciesIdTable = sQwilfishFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}), }, @@ -3520,7 +3858,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_POISON }, + .types = MON_TYPES(TYPE_DARK, TYPE_POISON), .catchRate = 45, .expYield = 179, .evYield_Attack = 2, @@ -3528,7 +3866,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Overqwil"), @@ -3546,17 +3884,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Overqwil, 64, 64), + .frontPic = gMonFrontPic_Overqwil, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Overqwil, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Overqwil, 64, 56), + .backPic = gMonBackPic_Overqwil, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Overqwil), - ICON(Overqwil, 2), - //.footprint = gMonFootprint_Overqwil, - LEARNSETS(Overqwil), + .palette = gMonPalette_Overqwil, + .shinyPalette = gMonShinyPalette_Overqwil, + .iconSprite = gMonIcon_Overqwil, + .iconPalIndex = 2, + //FOOTPRINT(Overqwil) + .levelUpLearnset = sOverqwilLevelUpLearnset, + .teachableLearnset = sOverqwilTeachableLearnset, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_QWILFISH @@ -3570,9 +3913,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 5, .baseSpAttack = 10, .baseSpDefense = 230, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 190, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 80, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemCommon = ITEM_BERRY_JUICE, @@ -3581,7 +3924,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Shuckle"), @@ -3599,51 +3942,49 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shuckle, 56, 48), + .frontPic = gMonFrontPic_Shuckle, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Shuckle, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Shuckle, 48, 48), + .backPic = gMonBackPic_Shuckle, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shuckle), - ICON(Shuckle, 1), - .footprint = gMonFootprint_Shuckle, - LEARNSETS(Shuckle), + .palette = gMonPalette_Shuckle, + .shinyPalette = gMonShinyPalette_Shuckle, + .iconSprite = gMonIcon_Shuckle, + .iconPalIndex = 1, + FOOTPRINT(Shuckle) + .levelUpLearnset = sShuckleLevelUpLearnset, + .teachableLearnset = sShuckleTeachableLearnset, }, #endif //P_FAMILY_SHUCKLE #if P_FAMILY_HERACROSS -#define HERACROSS_MISC_INFO \ - .types = { TYPE_BUG, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Heracross"), \ - .natDexNum = NATIONAL_DEX_HERACROSS, \ - .categoryName = _("Single Horn"), \ - .footprint = gMonFootprint_Heracross, \ - LEARNSETS(Heracross), \ - .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, \ - .formChangeTable = sHeracrossFormChangeTable - [SPECIES_HERACROSS] = { - HERACROSS_MISC_INFO, .baseHP = 80, .baseAttack = 125, .baseDefense = 75, .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 95, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_GUTS, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Heracross"), .cryId = CRY_HERACROSS, + .natDexNum = NATIONAL_DEX_HERACROSS, + .categoryName = _("Single Horn"), .height = 15, .weight = 540, .description = COMPOUND_STRING( @@ -3655,32 +3996,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Heracross, 64, 64), - FRONT_PIC_FEMALE(Heracross, 64, 64), + .frontPic = gMonFrontPic_Heracross, + .frontPicFemale = gMonFrontPic_HeracrossF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Heracross, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Heracross, 48, 64), - BACK_PIC_FEMALE(Heracross, 48, 64), + .backPic = gMonBackPic_Heracross, + .backPicFemale = gMonBackPic_HeracrossF, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicSizeFemale = MON_COORDS_SIZE(48, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Heracross), - ICON(Heracross, 0), + .palette = gMonPalette_Heracross, + .shinyPalette = gMonShinyPalette_Heracross, + .iconSprite = gMonIcon_Heracross, + .iconPalIndex = 0, + FOOTPRINT(Heracross) + .levelUpLearnset = sHeracrossLevelUpLearnset, + .teachableLearnset = sHeracrossTeachableLearnset, + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, + .formChangeTable = sHeracrossFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_HERACROSS_MEGA] = { - HERACROSS_MISC_INFO, .baseHP = 80, .baseAttack = 185, .baseDefense = 115, .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), + .catchRate = 45, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SKILL_LINK, ABILITY_SKILL_LINK, ABILITY_SKILL_LINK }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Heracross"), .cryId = CRY_HERACROSS_MEGA, + .natDexNum = NATIONAL_DEX_HERACROSS, + .categoryName = _("Single Horn"), .height = 17, .weight = 625, .description = COMPOUND_STRING( @@ -3692,75 +4055,89 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HeracrossMega, 64, 64), + .frontPic = gMonFrontPic_HeracrossMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HeracrossMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HeracrossMega, 56, 64), + .backPic = gMonBackPic_HeracrossMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(HeracrossMega), - ICON(HeracrossMega, 0), + .palette = gMonPalette_HeracrossMega, + .shinyPalette = gMonShinyPalette_HeracrossMega, + .iconSprite = gMonIcon_HeracrossMega, + .iconPalIndex = 0, + FOOTPRINT(Heracross) .isMegaEvolution = TRUE, + .levelUpLearnset = sHeracrossLevelUpLearnset, + .teachableLearnset = sHeracrossTeachableLearnset, + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, + .formChangeTable = sHeracrossFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_HERACROSS #if P_FAMILY_SNEASEL -#define SNEASEL_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 95, \ - .baseDefense = 55, \ - .baseSpeed = 115, \ - .baseSpAttack = 35, \ - .baseSpDefense = 75, \ - .catchRate = 60, \ - .expYield = 86, \ - .evYield_Speed = 1, \ - .itemRare = ITEM_QUICK_CLAW, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .noFlip = TRUE, \ - .speciesName = _("Sneasel"), \ - .cryId = CRY_SNEASEL, \ - .natDexNum = NATIONAL_DEX_SNEASEL, \ - .categoryName = _("Sharp Claw"), \ - .height = 9, \ - .pokemonScale = 413, \ - .pokemonOffset = -3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Sneasel, \ - .formSpeciesIdTable = sSneaselFormSpeciesIdTable - [SPECIES_SNEASEL] = { - SNEASEL_MISC_INFO, - .types = { TYPE_DARK, TYPE_ICE }, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 132, + .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Sneasel"), + .cryId = CRY_SNEASEL, + .natDexNum = NATIONAL_DEX_SNEASEL, + .categoryName = _("Sharp Claw"), + .height = 9, .weight = 280, .description = COMPOUND_STRING( "A Sneasel scales trees by punching its\n" "hooked claws into the bark. It seeks out\n" "unguarded nests and steals eggs for food\n" "while the parents are away."), - FRONT_PIC(Sneasel, 56, 48), - FRONT_PIC_FEMALE(Sneasel, 56, 48), + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sneasel, + .frontPicFemale = gMonFrontPic_SneaselF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sneasel, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Sneasel, 64, 64), - BACK_PIC_FEMALE(Sneasel, 64, 64), + .backPic = gMonBackPic_Sneasel, + .backPicFemale = gMonBackPic_SneaselF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Sneasel), - ICON(Sneasel, 0), - LEARNSETS(Sneasel), - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_WEAVILE}), + .palette = gMonPalette_Sneasel, + .shinyPalette = gMonShinyPalette_Sneasel, + .iconSprite = gMonIcon_Sneasel, + .iconPalIndex = 0, + FOOTPRINT(Sneasel) + .levelUpLearnset = sSneaselLevelUpLearnset, + .teachableLearnset = sSneaselTeachableLearnset, + .formSpeciesIdTable = sSneaselFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}), }, #if P_GEN_4_CROSS_EVOS @@ -3772,9 +4149,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 125, .baseSpAttack = 45, .baseSpDefense = 85, - .types = { TYPE_DARK, TYPE_ICE }, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), .catchRate = 45, - .expYield = 179, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 199, .evYield_Attack = 1, .evYield_Speed = 1, .itemRare = ITEM_QUICK_CLAW, @@ -3782,7 +4159,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Weavile"), @@ -3800,49 +4177,90 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weavile, 56, 56), - FRONT_PIC_FEMALE(Weavile, 56, 56), + .frontPic = gMonFrontPic_Weavile, + .frontPicFemale = gMonFrontPic_WeavileF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Weavile, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Weavile, 64, 64), - BACK_PIC_FEMALE(Weavile, 64, 64), + .backPic = gMonBackPic_Weavile, + .backPicFemale = gMonBackPic_WeavileF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Weavile), - ICON(Weavile, 0), - .footprint = gMonFootprint_Weavile, - LEARNSETS(Weavile), + .palette = gMonPalette_Weavile, + .shinyPalette = gMonShinyPalette_Weavile, + .iconSprite = gMonIcon_Weavile, + .iconPalIndex = 0, + FOOTPRINT(Weavile) + .levelUpLearnset = sWeavileLevelUpLearnset, + .teachableLearnset = sWeavileTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS [SPECIES_SNEASEL_HISUIAN] = { - SNEASEL_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_POISON }, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_POISON), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 132, + .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Sneasel"), + .cryId = CRY_SNEASEL, + .natDexNum = NATIONAL_DEX_SNEASEL, + .categoryName = _("Sharp Claw"), + .height = 9, .weight = 270, .description = COMPOUND_STRING( "Its sturdy, curved claws are ideal for\n" "traversing precipitous cliffs. From the\n" "tips of these claws drips a venom that\n" "infiltrates the nerves of any prey caught."), - FRONT_PIC(SneaselHisuian, 56, 56), - FRONT_PIC_FEMALE(SneaselHisuian, 56, 56), + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SneaselHisuian, + .frontPicFemale = gMonFrontPic_SneaselHisuianF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_SneaselHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SneaselHisuian, 56, 64), - BACK_PIC_FEMALE(SneaselHisuian, 56, 64), + .backPic = gMonBackPic_SneaselHisuian, + .backPicFemale = gMonBackPic_SneaselHisuianF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SneaselHisuian), - ICON(SneaselHisuian, 2), - LEARNSETS(SneaselHisuian), + .palette = gMonPalette_SneaselHisuian, + .shinyPalette = gMonShinyPalette_SneaselHisuian, + .iconSprite = gMonIcon_SneaselHisuian, + .iconPalIndex = 0, + FOOTPRINT(Sneasel) .isHisuianForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_SNEASLER}), + .levelUpLearnset = sSneaselHisuianLevelUpLearnset, + .teachableLearnset = sSneaselHisuianTeachableLearnset, + .formSpeciesIdTable = sSneaselFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}, + {EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}), }, [SPECIES_SNEASLER] = @@ -3853,7 +4271,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 120, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_POISON }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_POISON), .catchRate = 20, .expYield = 102, .evYield_Attack = 2, @@ -3861,7 +4279,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sneasler"), @@ -3879,17 +4297,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sneasler, 64, 64), + .frontPic = gMonFrontPic_Sneasler, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Sneasler, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sneasler, 64, 64), + .backPic = gMonBackPic_Sneasler, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sneasler), - ICON(Sneasler, 2), - //.footprint = gMonFootprint_Sneasler, - LEARNSETS(Sneasler), + .palette = gMonPalette_Sneasler, + .shinyPalette = gMonShinyPalette_Sneasler, + .iconSprite = gMonIcon_Sneasler, + .iconPalIndex = 2, + //FOOTPRINT(Sneasler) + .levelUpLearnset = sSneaslerLevelUpLearnset, + .teachableLearnset = sSneaslerTeachableLearnset, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_SNEASEL @@ -3903,15 +4326,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 124, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_QUICK_FEET, ABILITY_HONEY_GATHER }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -3930,17 +4353,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Teddiursa, 40, 40), + .frontPic = gMonFrontPic_Teddiursa, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Teddiursa, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Teddiursa, 48, 48), + .backPic = gMonBackPic_Teddiursa, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Teddiursa), - ICON(Teddiursa, 0), - .footprint = gMonFootprint_Teddiursa, - LEARNSETS(Teddiursa), + .palette = gMonPalette_Teddiursa, + .shinyPalette = gMonShinyPalette_Teddiursa, + .iconSprite = gMonIcon_Teddiursa, + .iconPalIndex = 0, + FOOTPRINT(Teddiursa) + .levelUpLearnset = sTeddiursaLevelUpLearnset, + .teachableLearnset = sTeddiursaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_URSARING}), }, @@ -3952,15 +4380,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Ursaring"), @@ -3978,51 +4406,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ursaring, 64, 64), - FRONT_PIC_FEMALE(Ursaring, 64, 64), + .frontPic = gMonFrontPic_Ursaring, + .frontPicFemale = gMonFrontPic_UrsaringF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ursaring, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Ursaring, 56, 64), - BACK_PIC_FEMALE(Ursaring, 56, 64), + .backPic = gMonBackPic_Ursaring, + .backPicFemale = gMonBackPic_UrsaringF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Ursaring), - ICON(Ursaring, 2), - .footprint = gMonFootprint_Ursaring, - LEARNSETS(Ursaring), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_URSALUNA}, + .palette = gMonPalette_Ursaring, + .shinyPalette = gMonShinyPalette_Ursaring, + .iconSprite = gMonIcon_Ursaring, + .iconPalIndex = 2, + FOOTPRINT(Ursaring) + .levelUpLearnset = sUrsaringLevelUpLearnset, + .teachableLearnset = sUrsaringTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}, {EVO_NONE, 0, SPECIES_URSALUNA_BLOODMOON}), }, #if P_GEN_8_CROSS_EVOS -#define URSALUNA_MISC_INFO \ - .expYield = 275, \ - .types = { TYPE_GROUND, TYPE_NORMAL }, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Ursaluna"), \ - .cryId = CRY_URSALUNA, \ - .natDexNum = NATIONAL_DEX_URSALUNA, \ - .categoryName = _("Peat"), \ - .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable - [SPECIES_URSALUNA] = { - URSALUNA_MISC_INFO, .baseHP = 130, .baseAttack = 140, .baseDefense = 105, .baseSpeed = 50, .baseSpAttack = 45, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_NORMAL), .catchRate = 20, + .expYield = 275, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GUTS, ABILITY_BULLETPROOF, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Ursaluna"), + .cryId = CRY_URSALUNA, + .natDexNum = NATIONAL_DEX_URSALUNA, + .categoryName = _("Peat"), .height = 24, .weight = 2900, .description = COMPOUND_STRING( @@ -4033,32 +4464,48 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Ursaluna, 56, 56), + .frontPic = gMonFrontPic_Ursaluna, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Ursaluna, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Ursaluna, 64, 40), + .backPic = gMonBackPic_Ursaluna, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Ursaluna), - ICON(Ursaluna, 2), - //.footprint = gMonFootprint_Ursaluna, - LEARNSETS(Ursaluna), + .palette = gMonPalette_Ursaluna, + .shinyPalette = gMonShinyPalette_Ursaluna, + .iconSprite = gMonIcon_Ursaluna, + .iconPalIndex = 2, + //FOOTPRINT(Ursaluna) + .levelUpLearnset = sUrsalunaLevelUpLearnset, + .teachableLearnset = sUrsalunaTeachableLearnset, + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable, }, [SPECIES_URSALUNA_BLOODMOON] = { - URSALUNA_MISC_INFO, .baseHP = 113, .baseAttack = 70, .baseDefense = 120, .baseSpeed = 52, .baseSpAttack = 135, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_GROUND, TYPE_NORMAL), .catchRate = 5, + .expYield = 275, .evYield_SpAttack = 3, .genderRatio = MON_MALE, - .abilities = { ABILITY_MINDS_EYE, ABILITY_NONE }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_MINDS_EYE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Ursaluna"), + .cryId = CRY_URSALUNA, + .natDexNum = NATIONAL_DEX_URSALUNA, + .categoryName = _("Peat"), .height = 27, .weight = 3330, .description = COMPOUND_STRING( @@ -4070,17 +4517,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(UrsalunaBloodmoon, 64, 64), + .frontPic = gMonFrontPic_UrsalunaBloodmoon, + .frontPicSize = MON_COORDS_SIZE(64, 64), //.frontPicYOffset = 0, .frontAnimFrames = sAnims_UrsalunaBloodmoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrsalunaBloodmoon, 64, 40), + .backPic = gMonBackPic_UrsalunaBloodmoon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrsalunaBloodmoon), - //ICON(UrsalunaBloodmoon, 0), - //.footprint = gMonFootprint_UrsalunaBloodmoon, - LEARNSETS(UrsalunaBloodmoon), + .palette = gMonPalette_UrsalunaBloodmoon, + .shinyPalette = gMonShinyPalette_UrsalunaBloodmoon, + .iconSprite = gMonIcon_UrsalunaBloodmoon, + .iconPalIndex = 2, + //FOOTPRINT(UrsalunaBloodmoon) + .levelUpLearnset = sUrsalunaBloodmoonLevelUpLearnset, + .teachableLearnset = sUrsalunaBloodmoonTeachableLearnset, + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_TEDDIURSA @@ -4094,15 +4547,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 70, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 190, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 78, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Slugma"), @@ -4120,17 +4573,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Slugma, 32, 48), + .frontPic = gMonFrontPic_Slugma, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Slugma, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Slugma, 64, 56), + .backPic = gMonBackPic_Slugma, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Slugma), - ICON(Slugma, 0), - .footprint = gMonFootprint_Slugma, - LEARNSETS(Slugma), + .palette = gMonPalette_Slugma, + .shinyPalette = gMonShinyPalette_Slugma, + .iconSprite = gMonIcon_Slugma, + .iconPalIndex = 0, + FOOTPRINT(Slugma) + .levelUpLearnset = sSlugmaLevelUpLearnset, + .teachableLearnset = sSlugmaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MAGCARGO}), }, @@ -4142,15 +4600,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 90 : 80, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 144, + #else + .expYield = 154, + #endif .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -4169,17 +4633,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magcargo, 56, 64), + .frontPic = gMonFrontPic_Magcargo, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Magcargo, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Magcargo, 64, 56), + .backPic = gMonBackPic_Magcargo, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magcargo), - ICON(Magcargo, 0), - .footprint = gMonFootprint_Magcargo, - LEARNSETS(Magcargo), + .palette = gMonPalette_Magcargo, + .shinyPalette = gMonShinyPalette_Magcargo, + .iconSprite = gMonIcon_Magcargo, + .iconPalIndex = 0, + FOOTPRINT(Magcargo) + .levelUpLearnset = sMagcargoLevelUpLearnset, + .teachableLearnset = sMagcargoTeachableLearnset, }, #endif //P_FAMILY_SLUGMA @@ -4192,15 +4661,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 225, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 78, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Swinub"), @@ -4218,17 +4687,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swinub, 40, 32), + .frontPic = gMonFrontPic_Swinub, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Swinub, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Swinub, 56, 40), + .backPic = gMonBackPic_Swinub, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Swinub), - ICON(Swinub, 2), - .footprint = gMonFootprint_Swinub, - LEARNSETS(Swinub), + .palette = gMonPalette_Swinub, + .shinyPalette = gMonShinyPalette_Swinub, + .iconSprite = gMonIcon_Swinub, + .iconPalIndex = 2, + FOOTPRINT(Swinub) + .levelUpLearnset = sSwinubLevelUpLearnset, + .teachableLearnset = sSwinubTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_PILOSWINE}), }, @@ -4240,16 +4714,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 160, .evYield_HP = 1, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Piloswine"), @@ -4267,19 +4741,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Piloswine, 48, 56), - FRONT_PIC_FEMALE(Piloswine, 48, 56), + .frontPic = gMonFrontPic_Piloswine, + .frontPicFemale = gMonFrontPic_PiloswineF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Piloswine, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Piloswine, 64, 48), - BACK_PIC_FEMALE(Piloswine, 64, 48), + .backPic = gMonBackPic_Piloswine, + .backPicFemale = gMonBackPic_PiloswineF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Piloswine), - ICON(Piloswine, 2), - .footprint = gMonFootprint_Piloswine, - LEARNSETS(Piloswine), + .palette = gMonPalette_Piloswine, + .shinyPalette = gMonShinyPalette_Piloswine, + .iconSprite = gMonIcon_Piloswine, + .iconPalIndex = 2, + FOOTPRINT(Piloswine) + .levelUpLearnset = sPiloswineLevelUpLearnset, + .teachableLearnset = sPiloswineTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_MAMOSWINE}), }, @@ -4292,15 +4773,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 207, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mamoswine"), @@ -4318,108 +4805,147 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Mamoswine, 64, 56), - FRONT_PIC_FEMALE(Mamoswine, 64, 56), + .frontPic = gMonFrontPic_Mamoswine, + .frontPicFemale = gMonFrontPic_MamoswineF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mamoswine, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Mamoswine, 64, 56), + .backPic = gMonBackPic_Mamoswine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Mamoswine), - ICON(Mamoswine, 2), - .footprint = gMonFootprint_Mamoswine, - LEARNSETS(Mamoswine), + .palette = gMonPalette_Mamoswine, + .shinyPalette = gMonShinyPalette_Mamoswine, + .iconSprite = gMonIcon_Mamoswine, + .iconPalIndex = 2, + FOOTPRINT(Mamoswine) + .levelUpLearnset = sMamoswineLevelUpLearnset, + .teachableLearnset = sMamoswineTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SWINUB #if P_FAMILY_CORSOLA +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define CORSOLA_EXP_YIELD 144 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define CORSOLA_EXP_YIELD 133 +#else + #define CORSOLA_EXP_YIELD 113 +#endif #define CORSOLA_HP (P_UPDATED_STATS >= GEN_7 ? 65 : 55) #define CORSOLA_DEFENSES (P_UPDATED_STATS >= GEN_7 ? 95 : 85) -#define CORSOLA_MISC_INFO \ - .catchRate = 60, \ - .expYield = 144, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, \ - .speciesName = _("Corsola"), \ - .cryId = CRY_CORSOLA, \ - .natDexNum = NATIONAL_DEX_CORSOLA, \ - .categoryName = _("Coral"), \ - .height = 6, \ - .pokemonScale = 410, \ - .pokemonOffset = 15, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Corsola, \ - .formSpeciesIdTable = sCorsolaFormSpeciesIdTable - [SPECIES_CORSOLA] = { - CORSOLA_MISC_INFO, .baseHP = CORSOLA_HP, .baseAttack = 55, .baseDefense = CORSOLA_DEFENSES, .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = CORSOLA_DEFENSES, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 60, + .expYield = CORSOLA_EXP_YIELD, .evYield_Defense = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_LUMINOUS_MOSS, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HUSTLE, ABILITY_NATURAL_CURE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Corsola"), + .cryId = CRY_CORSOLA, + .natDexNum = NATIONAL_DEX_CORSOLA, + .categoryName = _("Coral"), + .height = 6, .weight = 50, .description = COMPOUND_STRING( "Corsola live in warm southern seas.\n" "If the sea becomes polluted, the beautiful\n" "coral stalks become discolored and crumble\n" "away in tatters."), - FRONT_PIC(Corsola, 48, 40), + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Corsola, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Corsola, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Corsola, 56, 48), + .backPic = gMonBackPic_Corsola, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Corsola), - ICON(Corsola, 0), - LEARNSETS(Corsola), + .palette = gMonPalette_Corsola, + .shinyPalette = gMonShinyPalette_Corsola, + .iconSprite = gMonIcon_Corsola, + .iconPalIndex = 0, + FOOTPRINT(Corsola) + .levelUpLearnset = sCorsolaLevelUpLearnset, + .teachableLearnset = sCorsolaTeachableLearnset, + .formSpeciesIdTable = sCorsolaFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_CORSOLA_GALARIAN] = { - CORSOLA_MISC_INFO, .baseHP = CORSOLA_HP - 5, .baseAttack = 55, .baseDefense = CORSOLA_DEFENSES + 5, .baseSpeed = 30, .baseSpAttack = 65, .baseSpDefense = CORSOLA_DEFENSES + 5, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = CORSOLA_EXP_YIELD, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Corsola"), + .cryId = CRY_CORSOLA, + .natDexNum = NATIONAL_DEX_CORSOLA, + .categoryName = _("Coral"), + .height = 6, .weight = 5, .description = COMPOUND_STRING( "Sudden climate change wiped out this\n" "ancient kind of Corsola. With its branches,\n" "it absorbs others' life-force. It curses\n" "those unaware that kick it by accident."), - FRONT_PIC(CorsolaGalarian, 48, 48), + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CorsolaGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_CorsolaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CorsolaGalarian, 56, 48), + .backPic = gMonBackPic_CorsolaGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CorsolaGalarian), - ICON(CorsolaGalarian, 0), - LEARNSETS(CorsolaGalarian), + .palette = gMonPalette_CorsolaGalarian, + .shinyPalette = gMonShinyPalette_CorsolaGalarian, + .iconSprite = gMonIcon_CorsolaGalarian, + .iconPalIndex = 0, + FOOTPRINT(Corsola) .isGalarianForm = TRUE, + .levelUpLearnset = sCorsolaGalarianLevelUpLearnset, + .teachableLearnset = sCorsolaGalarianTeachableLearnset, + .formSpeciesIdTable = sCorsolaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CURSOLA}), }, @@ -4431,7 +4957,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 145, .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 30, .expYield = 179, .evYield_SpAttack = 2, @@ -4439,7 +4965,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_PERISH_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cursola"), @@ -4457,17 +4983,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Cursola, 64, 64), + .frontPic = gMonFrontPic_Cursola, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cursola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cursola, 64, 56), + .backPic = gMonBackPic_Cursola, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cursola), - ICON(Cursola, 0), - .footprint = gMonFootprint_Cursola, - LEARNSETS(Cursola), + .palette = gMonPalette_Cursola, + .shinyPalette = gMonShinyPalette_Cursola, + .iconSprite = gMonIcon_Cursola, + .iconPalIndex = 0, + FOOTPRINT(Cursola) + .levelUpLearnset = sCursolaLevelUpLearnset, + .teachableLearnset = sCursolaTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_CORSOLA @@ -4481,15 +5012,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 78, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Remoraid"), @@ -4507,17 +5038,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Remoraid, 40, 48), + .frontPic = gMonFrontPic_Remoraid, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Remoraid, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Remoraid, 56, 40), + .backPic = gMonBackPic_Remoraid, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Remoraid), - ICON(Remoraid, 0), - .footprint = gMonFootprint_Remoraid, - LEARNSETS(Remoraid), + .palette = gMonPalette_Remoraid, + .shinyPalette = gMonShinyPalette_Remoraid, + .iconSprite = gMonIcon_Remoraid, + .iconPalIndex = 0, + FOOTPRINT(Remoraid) + .levelUpLearnset = sRemoraidLevelUpLearnset, + .teachableLearnset = sRemoraidTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_OCTILLERY}), }, @@ -4529,16 +5065,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 105, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 164, .evYield_Attack = 1, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_SNIPER, ABILITY_MOODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Octillery"), @@ -4556,20 +5092,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Octillery, 56, 48), - FRONT_PIC_FEMALE(Octillery, 56, 48), + .frontPic = gMonFrontPic_Octillery, + .frontPicFemale = gMonFrontPic_OctilleryF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Octillery, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Octillery, 64, 56), - BACK_PIC_FEMALE(Octillery, 64, 56), + .backPic = gMonBackPic_Octillery, + .backPicFemale = gMonBackPic_OctilleryF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Octillery), - ICON(Octillery, 0), - .footprint = gMonFootprint_Octillery, - LEARNSETS(Octillery), + .palette = gMonPalette_Octillery, + .shinyPalette = gMonShinyPalette_Octillery, + .iconSprite = gMonIcon_Octillery, + .iconPalIndex = 0, + FOOTPRINT(Octillery) + .levelUpLearnset = sOctilleryLevelUpLearnset, + .teachableLearnset = sOctilleryTeachableLearnset, }, #endif //P_FAMILY_REMORAID @@ -4582,15 +5125,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 75, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_ICE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ICE, TYPE_FLYING), .catchRate = 45, - .expYield = 116, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 116 : 183, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Delibird"), @@ -4608,17 +5151,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Delibird, 48, 56), + .frontPic = gMonFrontPic_Delibird, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Delibird, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Delibird, 56, 56), + .backPic = gMonBackPic_Delibird, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Delibird), - ICON(Delibird, 1), - .footprint = gMonFootprint_Delibird, - LEARNSETS(Delibird), + .palette = gMonPalette_Delibird, + .shinyPalette = gMonShinyPalette_Delibird, + .iconSprite = gMonIcon_Delibird, + .iconPalIndex = 1, + FOOTPRINT(Delibird) + .levelUpLearnset = sDelibirdLevelUpLearnset, + .teachableLearnset = sDelibirdTeachableLearnset, }, #endif //P_FAMILY_DELIBIRD @@ -4632,15 +5180,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 25, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 108, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mantyke"), @@ -4658,17 +5206,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Mantyke, 48, 48), + .frontPic = gMonFrontPic_Mantyke, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Mantyke, .frontAnimId = ANIM_TWIST_TWICE, - BACK_PIC(Mantyke, 64, 56), + .backPic = gMonBackPic_Mantyke, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Mantyke), - ICON(Mantyke, 0), - .footprint = gMonFootprint_Mantyke, - LEARNSETS(Mantyke), + .palette = gMonPalette_Mantyke, + .shinyPalette = gMonShinyPalette_Mantyke, + .iconSprite = gMonIcon_Mantyke, + .iconPalIndex = 0, + FOOTPRINT(Mantyke) + .levelUpLearnset = sMantykeLevelUpLearnset, + .teachableLearnset = sMantykeTeachableLearnset, .evolutions = EVOLUTION({EVO_SPECIFIC_MON_IN_PARTY, SPECIES_REMORAID, SPECIES_MANTINE}), }, #endif //P_GEN_4_CROSS_EVOS @@ -4681,15 +5234,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 80, .baseSpDefense = 140, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 25, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 170, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 163, + #else + .expYield = 168, + #endif .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mantine"), @@ -4707,18 +5266,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Mantine, 64, 56), + .frontPic = gMonFrontPic_Mantine, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Mantine, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 6, - BACK_PIC(Mantine, 64, 64), + .backPic = gMonBackPic_Mantine, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Mantine), - ICON(Mantine, 2), - .footprint = gMonFootprint_Mantine, - LEARNSETS(Mantine), + .palette = gMonPalette_Mantine, + .shinyPalette = gMonShinyPalette_Mantine, + .iconSprite = gMonIcon_Mantine, + .iconPalIndex = 2, + FOOTPRINT(Mantine) + .levelUpLearnset = sMantineLevelUpLearnset, + .teachableLearnset = sMantineTeachableLearnset, }, #endif //P_FAMILY_MANTINE @@ -4731,16 +5295,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_STEEL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FLYING), .catchRate = 25, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 168, .evYield_Defense = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_STURDY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Skarmory"), @@ -4758,17 +5322,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 271, .trainerOffset = 1, - FRONT_PIC(Skarmory, 64, 64), + .frontPic = gMonFrontPic_Skarmory, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Skarmory, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Skarmory, 48, 64), + .backPic = gMonBackPic_Skarmory, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Skarmory), - ICON(Skarmory, 0), - .footprint = gMonFootprint_Skarmory, - LEARNSETS(Skarmory), + .palette = gMonPalette_Skarmory, + .shinyPalette = gMonShinyPalette_Skarmory, + .iconSprite = gMonIcon_Skarmory, + .iconPalIndex = 0, + FOOTPRINT(Skarmory) + .levelUpLearnset = sSkarmoryLevelUpLearnset, + .teachableLearnset = sSkarmoryTeachableLearnset, }, #endif //P_FAMILY_SKARMORY @@ -4781,15 +5350,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 80, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 114, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Houndour"), @@ -4807,50 +5376,48 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndour, 40, 48), + .frontPic = gMonFrontPic_Houndour, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Houndour, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Houndour, 40, 48), + .backPic = gMonBackPic_Houndour, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Houndour), - ICON(Houndour, 0), - .footprint = gMonFootprint_Houndour, - LEARNSETS(Houndour), + .palette = gMonPalette_Houndour, + .shinyPalette = gMonShinyPalette_Houndour, + .iconSprite = gMonIcon_Houndour, + .iconPalIndex = 0, + FOOTPRINT(Houndour) + .levelUpLearnset = sHoundourLevelUpLearnset, + .teachableLearnset = sHoundourTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HOUNDOOM}), }, -#define HOUNDOOM_MISC_INFO \ - .types = { TYPE_DARK, TYPE_FIRE }, \ - .catchRate = 45, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Houndoom"), \ - .natDexNum = NATIONAL_DEX_HOUNDOOM, \ - .categoryName = _("Dark"), \ - .footprint = gMonFootprint_Houndoom, \ - LEARNSETS(Houndoom), \ - .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, \ - .formChangeTable = sHoundoomFormChangeTable - [SPECIES_HOUNDOOM] = { - HOUNDOOM_MISC_INFO, .baseHP = 75, .baseAttack = 90, .baseDefense = 50, .baseSpeed = 95, .baseSpAttack = 110, .baseSpDefense = 80, - .expYield = 175, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 204, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Houndoom"), .cryId = CRY_HOUNDOOM, + .natDexNum = NATIONAL_DEX_HOUNDOOM, + .categoryName = _("Dark"), .height = 14, .weight = 350, .description = COMPOUND_STRING( @@ -4862,32 +5429,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndoom, 64, 64), - FRONT_PIC_FEMALE(Houndoom, 64, 64), + .frontPic = gMonFrontPic_Houndoom, + .frontPicFemale = gMonFrontPic_HoundoomF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Houndoom, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Houndoom, 64, 56), - BACK_PIC_FEMALE(Houndoom, 64, 56), + .backPic = gMonBackPic_Houndoom, + .backPicFemale = gMonBackPic_HoundoomF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Houndoom), - ICON(Houndoom, 0), + .palette = gMonPalette_Houndoom, + .shinyPalette = gMonShinyPalette_Houndoom, + .iconSprite = gMonIcon_Houndoom, + .iconPalIndex = 0, + FOOTPRINT(Houndoom) + .levelUpLearnset = sHoundoomLevelUpLearnset, + .teachableLearnset = sHoundoomTeachableLearnset, + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, + .formChangeTable = sHoundoomFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_HOUNDOOM_MEGA] = { - HOUNDOOM_MISC_INFO, .baseHP = 75, .baseAttack = 90, .baseDefense = 90, .baseSpeed = 115, .baseSpAttack = 140, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), + .catchRate = 45, .expYield = 210, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Houndoom"), .cryId = CRY_HOUNDOOM_MEGA, + .natDexNum = NATIONAL_DEX_HOUNDOOM, + .categoryName = _("Dark"), .height = 19, .weight = 495, .description = COMPOUND_STRING( @@ -4898,16 +5487,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoundoomMega, 64, 64), + .frontPic = gMonFrontPic_HoundoomMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoundoomMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HoundoomMega, 64, 64), + .backPic = gMonBackPic_HoundoomMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(HoundoomMega), - ICON(HoundoomMega, 0), + .palette = gMonPalette_HoundoomMega, + .shinyPalette = gMonShinyPalette_HoundoomMega, + .iconSprite = gMonIcon_HoundoomMega, + .iconPalIndex = 0, + FOOTPRINT(Houndoom) .isMegaEvolution = TRUE, + .levelUpLearnset = sHoundoomLevelUpLearnset, + .teachableLearnset = sHoundoomTeachableLearnset, + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, + .formChangeTable = sHoundoomFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_HOUNDOUR @@ -4921,15 +5519,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 124, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Phanpy"), @@ -4947,17 +5545,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phanpy, 40, 32), + .frontPic = gMonFrontPic_Phanpy, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Phanpy, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Phanpy, 56, 40), + .backPic = gMonBackPic_Phanpy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Phanpy), - ICON(Phanpy, 0), - .footprint = gMonFootprint_Phanpy, - LEARNSETS(Phanpy), + .palette = gMonPalette_Phanpy, + .shinyPalette = gMonShinyPalette_Phanpy, + .iconSprite = gMonIcon_Phanpy, + .iconPalIndex = 0, + FOOTPRINT(Phanpy) + .levelUpLearnset = sPhanpyLevelUpLearnset, + .teachableLearnset = sPhanpyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DONPHAN}), }, @@ -4969,16 +5572,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Donphan"), @@ -4996,19 +5599,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Donphan, 64, 48), - FRONT_PIC_FEMALE(Donphan, 64, 48), + .frontPic = gMonFrontPic_Donphan, + .frontPicFemale = gMonFrontPic_DonphanF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Donphan, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Donphan, 64, 48), - BACK_PIC_FEMALE(Donphan, 64, 48), + .backPic = gMonBackPic_Donphan, + .backPicFemale = gMonBackPic_DonphanF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Donphan), - ICON(Donphan, 0), - .footprint = gMonFootprint_Donphan, - LEARNSETS(Donphan), + .palette = gMonPalette_Donphan, + .shinyPalette = gMonShinyPalette_Donphan, + .iconSprite = gMonIcon_Donphan, + .iconPalIndex = 0, + FOOTPRINT(Donphan) + .levelUpLearnset = sDonphanLevelUpLearnset, + .teachableLearnset = sDonphanTeachableLearnset, }, #endif //P_FAMILY_PHANPY @@ -5021,15 +5631,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 165, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Stantler"), @@ -5047,18 +5657,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stantler, 48, 64), + .frontPic = gMonFrontPic_Stantler, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Stantler, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stantler, 64, 64), + .backPic = gMonBackPic_Stantler, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Stantler), - ICON(Stantler, 2), - .footprint = gMonFootprint_Stantler, - LEARNSETS(Stantler), - .evolutions = EVOLUTION({EVO_MOVE, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}), + .palette = gMonPalette_Stantler, + .shinyPalette = gMonShinyPalette_Stantler, + .iconSprite = gMonIcon_Stantler, + .iconPalIndex = 2, + FOOTPRINT(Stantler) + .levelUpLearnset = sStantlerLevelUpLearnset, + .teachableLearnset = sStantlerTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_MOVE_TWENTY_TIMES, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}), }, #if P_GEN_8_CROSS_EVOS @@ -5070,7 +5685,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 105, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 263, .evYield_Attack = 1, @@ -5079,7 +5694,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Wyrdeer"), @@ -5097,17 +5712,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Wyrdeer, 64, 64), + .frontPic = gMonFrontPic_Wyrdeer, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Wyrdeer, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wyrdeer, 64, 64), + .backPic = gMonBackPic_Wyrdeer, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wyrdeer), - ICON(Wyrdeer, 2), - //.footprint = gMonFootprint_Wyrdeer, - LEARNSETS(Wyrdeer), + .palette = gMonPalette_Wyrdeer, + .shinyPalette = gMonShinyPalette_Wyrdeer, + .iconSprite = gMonIcon_Wyrdeer, + .iconPalIndex = 2, + //FOOTPRINT(Wyrdeer) + .levelUpLearnset = sWyrdeerLevelUpLearnset, + .teachableLearnset = sWyrdeerTeachableLearnset, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_STANTLER @@ -5121,15 +5741,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 75, .baseSpAttack = 20, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 88, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 88 : 106, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_TECHNICIAN, ABILITY_MOODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Smeargle"), @@ -5147,17 +5767,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smeargle, 64, 56), + .frontPic = gMonFrontPic_Smeargle, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Smeargle, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Smeargle, 56, 48), + .backPic = gMonBackPic_Smeargle, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Smeargle), - ICON(Smeargle, 1), - .footprint = gMonFootprint_Smeargle, - LEARNSETS(Smeargle), + .palette = gMonPalette_Smeargle, + .shinyPalette = gMonShinyPalette_Smeargle, + .iconSprite = gMonIcon_Smeargle, + .iconPalIndex = 1, + FOOTPRINT(Smeargle) + .tmIlliterate = TRUE, + .levelUpLearnset = sSmeargleLevelUpLearnset, + .teachableLearnset = sSmeargleTeachableLearnset, }, #endif //P_FAMILY_SMEARGLE @@ -5170,9 +5796,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 200, .evYield_Defense = 2, .itemCommon = ITEM_MOOMOO_MILK, .itemRare = ITEM_MOOMOO_MILK, @@ -5180,7 +5806,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SCRAPPY, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Miltank"), @@ -5198,17 +5824,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Miltank, 64, 48), + .frontPic = gMonFrontPic_Miltank, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Miltank, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Miltank, 64, 56), + .backPic = gMonBackPic_Miltank, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Miltank), - ICON(Miltank, 0), - .footprint = gMonFootprint_Miltank, - LEARNSETS(Miltank), + .palette = gMonPalette_Miltank, + .shinyPalette = gMonShinyPalette_Miltank, + .iconSprite = gMonIcon_Miltank, + .iconPalIndex = 0, + FOOTPRINT(Miltank) + .levelUpLearnset = sMiltankLevelUpLearnset, + .teachableLearnset = sMiltankTeachableLearnset, }, #endif //P_FAMILY_MILTANK @@ -5221,23 +5852,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 115, .baseSpAttack = 115, .baseSpDefense = 100, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_Speed = 2, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB }, + #endif .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Raikou"), .cryId = CRY_RAIKOU, .natDexNum = NATIONAL_DEX_RAIKOU, @@ -5253,17 +5889,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Raikou, 64, 56), + .frontPic = gMonFrontPic_Raikou, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Raikou, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Raikou, 64, 56), + .backPic = gMonBackPic_Raikou, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Raikou), - ICON(Raikou, 2), - .footprint = gMonFootprint_Raikou, - LEARNSETS(Raikou), + .palette = gMonPalette_Raikou, + .shinyPalette = gMonShinyPalette_Raikou, + .iconSprite = gMonIcon_Raikou, + .iconPalIndex = 2, + FOOTPRINT(Raikou) + .isLegendary = TRUE, + .levelUpLearnset = sRaikouLevelUpLearnset, + .teachableLearnset = sRaikouTeachableLearnset, }, #endif //P_FAMILY_RAIKOU @@ -5276,23 +5918,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_HP = 1, .evYield_Attack = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE }, + #endif .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Entei"), .cryId = CRY_ENTEI, .natDexNum = NATIONAL_DEX_ENTEI, @@ -5308,17 +5955,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Entei, 64, 64), + .frontPic = gMonFrontPic_Entei, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Entei, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Entei, 64, 48), + .backPic = gMonBackPic_Entei, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Entei), - ICON(Entei, 2), - .footprint = gMonFootprint_Entei, - LEARNSETS(Entei), + .palette = gMonPalette_Entei, + .shinyPalette = gMonShinyPalette_Entei, + .iconSprite = gMonIcon_Entei, + .iconPalIndex = 2, + FOOTPRINT(Entei) + .isLegendary = TRUE, + .levelUpLearnset = sEnteiLevelUpLearnset, + .teachableLearnset = sEnteiTeachableLearnset, }, #endif //P_FAMILY_ENTEI @@ -5331,23 +5984,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 115, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB }, + #endif .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Suicune"), .cryId = CRY_SUICUNE, .natDexNum = NATIONAL_DEX_SUICUNE, @@ -5363,17 +6021,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Suicune, 64, 64), + .frontPic = gMonFrontPic_Suicune, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Suicune, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Suicune, 64, 64), + .backPic = gMonBackPic_Suicune, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Suicune), - ICON(Suicune, 2), - .footprint = gMonFootprint_Suicune, - LEARNSETS(Suicune), + .palette = gMonPalette_Suicune, + .shinyPalette = gMonShinyPalette_Suicune, + .iconSprite = gMonIcon_Suicune, + .iconPalIndex = 2, + FOOTPRINT(Suicune) + .isLegendary = TRUE, + .levelUpLearnset = sSuicuneLevelUpLearnset, + .teachableLearnset = sSuicuneTeachableLearnset, }, #endif //P_FAMILY_SUICUNE @@ -5386,15 +6050,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 41, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Larvitar"), @@ -5412,17 +6076,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Larvitar, 40, 48), + .frontPic = gMonFrontPic_Larvitar, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Larvitar, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Larvitar, 56, 64), + .backPic = gMonBackPic_Larvitar, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Larvitar), - ICON(Larvitar, 1), - .footprint = gMonFootprint_Larvitar, - LEARNSETS(Larvitar), + .palette = gMonPalette_Larvitar, + .shinyPalette = gMonShinyPalette_Larvitar, + .iconSprite = gMonIcon_Larvitar, + .iconPalIndex = 1, + FOOTPRINT(Larvitar) + .levelUpLearnset = sLarvitarLevelUpLearnset, + .teachableLearnset = sLarvitarTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PUPITAR}), }, @@ -5434,7 +6103,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 51, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -5442,8 +6111,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pupitar"), .cryId = CRY_PUPITAR, @@ -5460,50 +6129,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pupitar, 40, 48), + .frontPic = gMonFrontPic_Pupitar, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pupitar, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Pupitar, 48, 56), + .backPic = gMonBackPic_Pupitar, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Pupitar), - ICON(Pupitar, 2), - .footprint = gMonFootprint_Pupitar, - LEARNSETS(Pupitar), + .palette = gMonPalette_Pupitar, + .shinyPalette = gMonShinyPalette_Pupitar, + .iconSprite = gMonIcon_Pupitar, + .iconPalIndex = 2, + FOOTPRINT(Pupitar) + .levelUpLearnset = sPupitarLevelUpLearnset, + .teachableLearnset = sPupitarTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_TYRANITAR}), }, -#define TYRANITAR_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_DARK }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Tyranitar"), \ - .natDexNum = NATIONAL_DEX_TYRANITAR, \ - .categoryName = _("Armor"), \ - .footprint = gMonFootprint_Tyranitar, \ - LEARNSETS(Tyranitar), \ - .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, \ - .formChangeTable = sTyranitarFormChangeTable - [SPECIES_TYRANITAR] = { - TYRANITAR_MISC_INFO, .baseHP = 100, .baseAttack = 134, .baseDefense = 110, .baseSpeed = 61, .baseSpAttack = 95, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_ROCK, TYPE_DARK), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tyranitar"), .cryId = CRY_TYRANITAR, + .natDexNum = NATIONAL_DEX_TYRANITAR, + .categoryName = _("Armor"), .height = 20, .weight = 2020, .description = COMPOUND_STRING( @@ -5515,31 +6188,51 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Tyranitar, 64, 64), + .frontPic = gMonFrontPic_Tyranitar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tyranitar, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 10, - BACK_PIC(Tyranitar, 64, 64), + .backPic = gMonBackPic_Tyranitar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tyranitar), - ICON(Tyranitar, 4), + .palette = gMonPalette_Tyranitar, + .shinyPalette = gMonShinyPalette_Tyranitar, + .iconSprite = gMonIcon_Tyranitar, + .iconPalIndex = 4, + FOOTPRINT(Tyranitar) + .levelUpLearnset = sTyranitarLevelUpLearnset, + .teachableLearnset = sTyranitarTeachableLearnset, + .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, + .formChangeTable = sTyranitarFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_TYRANITAR_MEGA] = { - TYRANITAR_MISC_INFO, .baseHP = 100, .baseAttack = 164, .baseDefense = 150, .baseSpeed = 71, .baseSpAttack = 95, .baseSpDefense = 120, - .expYield = 315, + .types = MON_TYPES(TYPE_ROCK, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_SAND_STREAM, ABILITY_SAND_STREAM, ABILITY_SAND_STREAM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tyranitar"), .cryId = CRY_TYRANITAR_MEGA, + .natDexNum = NATIONAL_DEX_TYRANITAR, + .categoryName = _("Armor"), .height = 25, .weight = 2550, .description = COMPOUND_STRING( @@ -5551,16 +6244,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(TyranitarMega, 64, 64), + .frontPic = gMonFrontPic_TyranitarMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TyranitarMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TyranitarMega, 64, 64), + .backPic = gMonBackPic_TyranitarMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(TyranitarMega), - ICON(TyranitarMega, 1), + .palette = gMonPalette_TyranitarMega, + .shinyPalette = gMonShinyPalette_TyranitarMega, + .iconSprite = gMonIcon_TyranitarMega, + .iconPalIndex = 1, + FOOTPRINT(Tyranitar) .isMegaEvolution = TRUE, + .levelUpLearnset = sTyranitarLevelUpLearnset, + .teachableLearnset = sTyranitarTeachableLearnset, + .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, + .formChangeTable = sTyranitarFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LARVITAR @@ -5574,18 +6276,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 110, .baseSpAttack = 90, .baseSpDefense = 154, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Lugia"), .cryId = CRY_LUGIA, .natDexNum = NATIONAL_DEX_LUGIA, @@ -5601,19 +6308,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Lugia, 64, 64), + .frontPic = gMonFrontPic_Lugia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Lugia, .frontAnimId = ANIM_GROW_IN_STAGES, .frontAnimDelay = 20, .enemyMonElevation = 6, - BACK_PIC(Lugia, 64, 64), + .backPic = gMonBackPic_Lugia, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Lugia), - ICON(Lugia, 0), - .footprint = gMonFootprint_Lugia, - LEARNSETS(Lugia), + .palette = gMonPalette_Lugia, + .shinyPalette = gMonShinyPalette_Lugia, + .iconSprite = gMonIcon_Lugia, + .iconPalIndex = 0, + FOOTPRINT(Lugia) + .isLegendary = TRUE, + .levelUpLearnset = sLugiaLevelUpLearnset, + .teachableLearnset = sLugiaTeachableLearnset, }, #endif //P_FAMILY_LUGIA @@ -5626,9 +6339,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 90, .baseSpAttack = 110, .baseSpDefense = 154, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif .evYield_SpDefense = 3, .itemCommon = ITEM_SACRED_ASH, .itemRare = ITEM_SACRED_ASH, @@ -5636,10 +6355,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Ho-Oh"), .cryId = CRY_HO_OH, .natDexNum = NATIONAL_DEX_HO_OH, @@ -5655,18 +6373,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(HoOh, 64, 64), + .frontPic = gMonFrontPic_HoOh, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoOh, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(HoOh, 64, 64), + .backPic = gMonBackPic_HoOh, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(HoOh), - ICON(HoOh, 1), - .footprint = gMonFootprint_HoOh, - LEARNSETS(HoOh), + .palette = gMonPalette_HoOh, + .shinyPalette = gMonShinyPalette_HoOh, + .iconSprite = gMonIcon_HoOh, + .iconPalIndex = 1, + FOOTPRINT(HoOh) + .isLegendary = TRUE, + .levelUpLearnset = sHoOhLevelUpLearnset, + .teachableLearnset = sHoOhTeachableLearnset, }, #endif //P_FAMILY_HO_OH @@ -5679,9 +6403,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 64, + #endif .evYield_HP = 3, .itemCommon = ITEM_LUM_BERRY, .itemRare = ITEM_LUM_BERRY, @@ -5689,10 +6419,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isMythical = TRUE, .speciesName = _("Celebi"), .cryId = CRY_CELEBI, .natDexNum = NATIONAL_DEX_CELEBI, @@ -5708,18 +6437,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Celebi, 40, 40), + .frontPic = gMonFrontPic_Celebi, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Celebi, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Celebi, 48, 56), + .backPic = gMonBackPic_Celebi, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Celebi), - ICON(Celebi, 1), - .footprint = gMonFootprint_Celebi, - LEARNSETS(Celebi), + .palette = gMonPalette_Celebi, + .shinyPalette = gMonShinyPalette_Celebi, + .iconSprite = gMonIcon_Celebi, + .iconPalIndex = 1, + FOOTPRINT(Celebi) + .isMythical = TRUE, + .levelUpLearnset = sCelebiLevelUpLearnset, + .teachableLearnset = sCelebiTeachableLearnset, }, #endif //P_FAMILY_CELEBI diff --git a/src/data/pokemon/species_info/gen_3.h b/src/data/pokemon/species_info/gen_3_families.h similarity index 57% rename from src/data/pokemon/species_info/gen_3.h rename to src/data/pokemon/species_info/gen_3_families.h index 40cc97fcc..fb34fdc4a 100644 --- a/src/data/pokemon/species_info/gen_3.h +++ b/src/data/pokemon/species_info/gen_3_families.h @@ -12,15 +12,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Treecko"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Treecko, 48, 48), + .frontPic = gMonFrontPic_Treecko, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Treecko, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Treecko, 56, 48), + .backPic = gMonBackPic_Treecko, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Treecko), - ICON(Treecko, 1), - .footprint = gMonFootprint_Treecko, - LEARNSETS(Treecko), + .palette = gMonPalette_Treecko, + .shinyPalette = gMonShinyPalette_Treecko, + .iconSprite = gMonIcon_Treecko, + .iconPalIndex = 1, + FOOTPRINT(Treecko) + .levelUpLearnset = sTreeckoLevelUpLearnset, + .teachableLearnset = sTreeckoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_GROVYLE}), }, @@ -60,15 +65,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grovyle"), @@ -86,50 +91,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grovyle, 64, 56), + .frontPic = gMonFrontPic_Grovyle, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Grovyle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Grovyle, 64, 56), + .backPic = gMonBackPic_Grovyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Grovyle), - ICON(Grovyle, 1), - .footprint = gMonFootprint_Grovyle, - LEARNSETS(Grovyle), + .palette = gMonPalette_Grovyle, + .shinyPalette = gMonShinyPalette_Grovyle, + .iconSprite = gMonIcon_Grovyle, + .iconPalIndex = 1, + FOOTPRINT(Grovyle) + .levelUpLearnset = sGrovyleLevelUpLearnset, + .teachableLearnset = sGrovyleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SCEPTILE}), }, -#define SCEPTILE_MISC_INFO \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sceptile"), \ - .natDexNum = NATIONAL_DEX_SCEPTILE, \ - .categoryName = _("Forest"), \ - .footprint = gMonFootprint_Sceptile, \ - LEARNSETS(Sceptile), \ - .formSpeciesIdTable = sSceptileFormSpeciesIdTable, \ - .formChangeTable = sSceptileFormChangeTable - [SPECIES_SCEPTILE] = { - SCEPTILE_MISC_INFO, .baseHP = 70, .baseAttack = 85, .baseDefense = 65, .baseSpeed = 120, .baseSpAttack = 105, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 208, + #endif + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sceptile"), .cryId = CRY_SCEPTILE, + .natDexNum = NATIONAL_DEX_SCEPTILE, + .categoryName = _("Forest"), .height = 17, .weight = 522, .description = COMPOUND_STRING( @@ -141,31 +150,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 275, .trainerOffset = 2, - FRONT_PIC(Sceptile, 64, 64), + .frontPic = gMonFrontPic_Sceptile, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sceptile, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Sceptile, 64, 64), + .backPic = gMonBackPic_Sceptile, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Sceptile), - ICON(Sceptile, 1), + .palette = gMonPalette_Sceptile, + .shinyPalette = gMonShinyPalette_Sceptile, + .iconSprite = gMonIcon_Sceptile, + .iconPalIndex = 1, + FOOTPRINT(Sceptile) + .levelUpLearnset = sSceptileLevelUpLearnset, + .teachableLearnset = sSceptileTeachableLearnset, + .formSpeciesIdTable = sSceptileFormSpeciesIdTable, + .formChangeTable = sSceptileFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SCEPTILE_MEGA] = { - SCEPTILE_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 75, .baseSpeed = 145, .baseSpAttack = 145, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_DRAGON }, - .expYield = 284, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sceptile"), .cryId = CRY_SCEPTILE_MEGA, + .natDexNum = NATIONAL_DEX_SCEPTILE, + .categoryName = _("Forest"), .height = 19, .weight = 552, .description = COMPOUND_STRING( @@ -177,16 +205,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 275, .trainerOffset = 2, - FRONT_PIC(SceptileMega, 64, 64), + .frontPic = gMonFrontPic_SceptileMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SceptileMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SceptileMega, 64, 64), + .backPic = gMonBackPic_SceptileMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(SceptileMega), - ICON(SceptileMega, 1), + .palette = gMonPalette_SceptileMega, + .shinyPalette = gMonShinyPalette_SceptileMega, + .iconSprite = gMonIcon_SceptileMega, + .iconPalIndex = 1, + FOOTPRINT(Sceptile) .isMegaEvolution = TRUE, + .levelUpLearnset = sSceptileLevelUpLearnset, + .teachableLearnset = sSceptileTeachableLearnset, + .formSpeciesIdTable = sSceptileFormSpeciesIdTable, + .formChangeTable = sSceptileFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_TREECKO @@ -200,15 +237,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Torchic"), @@ -226,18 +263,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torchic, 32, 48), + .frontPic = gMonFrontPic_Torchic, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Torchic, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Torchic, 40, 48), - BACK_PIC_FEMALE(Torchic, 40, 48), + .backPic = gMonBackPic_Torchic, + .backPicFemale = gMonBackPic_TorchicF, + .backPicSize = MON_COORDS_SIZE(40, 48), + .backPicSizeFemale = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Torchic), - ICON(Torchic, 0), - .footprint = gMonFootprint_Torchic, - LEARNSETS(Torchic), + .palette = gMonPalette_Torchic, + .shinyPalette = gMonShinyPalette_Torchic, + .iconSprite = gMonIcon_Torchic, + .iconPalIndex = 0, + FOOTPRINT(Torchic) + .levelUpLearnset = sTorchicLevelUpLearnset, + .teachableLearnset = sTorchicTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_COMBUSKEN}), }, @@ -249,7 +292,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 142, .evYield_Attack = 1, @@ -258,7 +301,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Combusken"), @@ -276,104 +319,147 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Combusken, 48, 64), - FRONT_PIC_FEMALE(Combusken, 48, 64), + .frontPic = gMonFrontPic_Combusken, + .frontPicFemale = gMonFrontPic_CombuskenF, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Combusken, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Combusken, 64, 64), - BACK_PIC_FEMALE(Combusken, 64, 64), + .backPic = gMonBackPic_Combusken, + .backPicFemale = gMonBackPic_CombuskenF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Combusken), - ICON(Combusken, 0), - .footprint = gMonFootprint_Combusken, - LEARNSETS(Combusken), + .palette = gMonPalette_Combusken, + .shinyPalette = gMonShinyPalette_Combusken, + .iconSprite = gMonIcon_Combusken, + .iconPalIndex = 0, + FOOTPRINT(Combusken) + .levelUpLearnset = sCombuskenLevelUpLearnset, + .teachableLearnset = sCombuskenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLAZIKEN}), }, -#define BLAZIKEN_MISC_INFO \ - .types = { TYPE_FIRE, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Blaziken"), \ - .natDexNum = NATIONAL_DEX_BLAZIKEN, \ - .categoryName = _("Blaze"), \ - .height = 19, \ - .weight = 520, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 301, \ - .trainerOffset = 4, \ - .footprint = gMonFootprint_Blaziken, \ - LEARNSETS(Blaziken), \ - .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, \ - .formChangeTable = sBlazikenFormChangeTable - [SPECIES_BLAZIKEN] = { - BLAZIKEN_MISC_INFO, .baseHP = 80, .baseAttack = 120, .baseDefense = 70, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 209, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Blaziken"), .cryId = CRY_BLAZIKEN, + .natDexNum = NATIONAL_DEX_BLAZIKEN, + .categoryName = _("Blaze"), + .height = 19, + .weight = 520, .description = COMPOUND_STRING( "It learns martial arts that use punches\n" "and kicks. Every several years, its old\n" "feathers burn off, and new, supple\n" "feathers grow back in their place."), - FRONT_PIC(Blaziken, 56, 64), - FRONT_PIC_FEMALE(Blaziken, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + .frontPic = gMonFrontPic_Blaziken, + .frontPicFemale = gMonFrontPic_BlazikenF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Blaziken, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Blaziken, 64, 64), - BACK_PIC_FEMALE(Blaziken, 64, 64), + .backPic = gMonBackPic_Blaziken, + .backPicFemale = gMonBackPic_BlazikenF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Blaziken), - ICON(Blaziken, 0), + .palette = gMonPalette_Blaziken, + .shinyPalette = gMonShinyPalette_Blaziken, + .iconSprite = gMonIcon_Blaziken, + .iconPalIndex = 0, + FOOTPRINT(Blaziken) + .levelUpLearnset = sBlazikenLevelUpLearnset, + .teachableLearnset = sBlazikenTeachableLearnset, + .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, + .formChangeTable = sBlazikenFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BLAZIKEN_MEGA] = { - BLAZIKEN_MISC_INFO, .baseHP = 80, .baseAttack = 160, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 130, .baseSpDefense = 80, - .expYield = 284, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Blaziken"), .cryId = CRY_BLAZIKEN_MEGA, + .natDexNum = NATIONAL_DEX_BLAZIKEN, + .categoryName = _("Blaze"), + .height = 19, + .weight = 520, .description = COMPOUND_STRING( "As it unleashes a flurry of savage kicks,\n" "its legs can begin to burn from the\n" "friction of the surrounding atmosphere.\n" "They're always a source of pride to it."), - FRONT_PIC(BlazikenMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + .frontPic = gMonFrontPic_BlazikenMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BlazikenMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlazikenMega, 56, 64), + .backPic = gMonBackPic_BlazikenMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(BlazikenMega), - ICON(BlazikenMega, 0), + .palette = gMonPalette_BlazikenMega, + .shinyPalette = gMonShinyPalette_BlazikenMega, + .iconSprite = gMonIcon_BlazikenMega, + .iconPalIndex = 0, + FOOTPRINT(Blaziken) .isMegaEvolution = TRUE, + .levelUpLearnset = sBlazikenLevelUpLearnset, + .teachableLearnset = sBlazikenTeachableLearnset, + .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, + .formChangeTable = sBlazikenFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_TORCHIC @@ -387,15 +473,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mudkip"), @@ -413,17 +499,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mudkip, 40, 40), + .frontPic = gMonFrontPic_Mudkip, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Mudkip, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Mudkip, 48, 48), + .backPic = gMonBackPic_Mudkip, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Mudkip), - ICON(Mudkip, 0), - .footprint = gMonFootprint_Mudkip, - LEARNSETS(Mudkip), + .palette = gMonPalette_Mudkip, + .shinyPalette = gMonShinyPalette_Mudkip, + .iconSprite = gMonIcon_Mudkip, + .iconPalIndex = 0, + FOOTPRINT(Mudkip) + .levelUpLearnset = sMudkipLevelUpLearnset, + .teachableLearnset = sMudkipTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_MARSHTOMP}), }, @@ -435,15 +526,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Marshtomp"), @@ -461,50 +552,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marshtomp, 48, 56), + .frontPic = gMonFrontPic_Marshtomp, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Marshtomp, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Marshtomp, 64, 64), + .backPic = gMonBackPic_Marshtomp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Marshtomp), - ICON(Marshtomp, 0), - .footprint = gMonFootprint_Marshtomp, - LEARNSETS(Marshtomp), + .palette = gMonPalette_Marshtomp, + .shinyPalette = gMonShinyPalette_Marshtomp, + .iconSprite = gMonIcon_Marshtomp, + .iconPalIndex = 0, + FOOTPRINT(Marshtomp) + .levelUpLearnset = sMarshtompLevelUpLearnset, + .teachableLearnset = sMarshtompTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SWAMPERT}), }, -#define SWAMPERT_MISC_INFO \ - .types = { TYPE_WATER, TYPE_GROUND }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Swampert"), \ - .natDexNum = NATIONAL_DEX_SWAMPERT, \ - .categoryName = _("Mud Fish"), \ - .footprint = gMonFootprint_Swampert, \ - LEARNSETS(Swampert), \ - .formSpeciesIdTable = sSwampertFormSpeciesIdTable, \ - .formChangeTable = sSwampertFormChangeTable - [SPECIES_SWAMPERT] = { - SWAMPERT_MISC_INFO, .baseHP = 100, .baseAttack = 110, .baseDefense = 90, .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 210, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Swampert"), .cryId = CRY_SWAMPERT, + .natDexNum = NATIONAL_DEX_SWAMPERT, + .categoryName = _("Mud Fish"), .height = 15, .weight = 819, .description = COMPOUND_STRING( @@ -516,30 +611,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swampert, 64, 56), + .frontPic = gMonFrontPic_Swampert, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Swampert, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Swampert, 64, 64), + .backPic = gMonBackPic_Swampert, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Swampert), - ICON(Swampert, 0), + .palette = gMonPalette_Swampert, + .shinyPalette = gMonShinyPalette_Swampert, + .iconSprite = gMonIcon_Swampert, + .iconPalIndex = 0, + FOOTPRINT(Swampert) + .levelUpLearnset = sSwampertLevelUpLearnset, + .teachableLearnset = sSwampertTeachableLearnset, + .formSpeciesIdTable = sSwampertFormSpeciesIdTable, + .formChangeTable = sSwampertFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SWAMPERT_MEGA] = { - SWAMPERT_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 110, .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 110, - .expYield = 286, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 318 : 286, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Swampert"), .cryId = CRY_SWAMPERT_MEGA, + .natDexNum = NATIONAL_DEX_SWAMPERT, + .categoryName = _("Mud Fish"), .height = 19, .weight = 1020, .description = COMPOUND_STRING( @@ -551,16 +666,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SwampertMega, 64, 64), + .frontPic = gMonFrontPic_SwampertMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_SwampertMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SwampertMega, 64, 56), + .backPic = gMonBackPic_SwampertMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(SwampertMega), - ICON(SwampertMega, 0), + .palette = gMonPalette_SwampertMega, + .shinyPalette = gMonShinyPalette_SwampertMega, + .iconSprite = gMonIcon_SwampertMega, + .iconPalIndex = 0, + FOOTPRINT(Swampert) .isMegaEvolution = TRUE, + .levelUpLearnset = sSwampertLevelUpLearnset, + .teachableLearnset = sSwampertTeachableLearnset, + .formSpeciesIdTable = sSwampertFormSpeciesIdTable, + .formChangeTable = sSwampertFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MUDKIP @@ -574,15 +698,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 56, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 44, + #else + .expYield = 55, + #endif .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_QUICK_FEET, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Poochyena"), @@ -600,17 +730,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poochyena, 48, 48), + .frontPic = gMonFrontPic_Poochyena, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Poochyena, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Poochyena, 64, 48), + .backPic = gMonBackPic_Poochyena, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Poochyena), - ICON(Poochyena, 2), - .footprint = gMonFootprint_Poochyena, - LEARNSETS(Poochyena), + .palette = gMonPalette_Poochyena, + .shinyPalette = gMonShinyPalette_Poochyena, + .iconSprite = gMonIcon_Poochyena, + .iconPalIndex = 2, + FOOTPRINT(Poochyena) + .levelUpLearnset = sPoochyenaLevelUpLearnset, + .teachableLearnset = sPoochyenaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_MIGHTYENA}), }, @@ -622,15 +757,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 127, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Mightyena"), @@ -648,173 +783,253 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mightyena, 64, 64), + .frontPic = gMonFrontPic_Mightyena, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Mightyena, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Mightyena, 64, 64), + .backPic = gMonBackPic_Mightyena, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Mightyena), - ICON(Mightyena, 2), - .footprint = gMonFootprint_Mightyena, - LEARNSETS(Mightyena), + .palette = gMonPalette_Mightyena, + .shinyPalette = gMonShinyPalette_Mightyena, + .iconSprite = gMonIcon_Mightyena, + .iconPalIndex = 2, + FOOTPRINT(Mightyena) + .levelUpLearnset = sMightyenaLevelUpLearnset, + .teachableLearnset = sMightyenaTeachableLearnset, }, #endif //P_FAMILY_POOCHYENA #if P_FAMILY_ZIGZAGOON -#define ZIGZAGOON_MISC_INFO \ - .baseHP = 38, \ - .baseAttack = 30, \ - .baseDefense = 41, \ - .baseSpeed = 60, \ - .baseSpAttack = 30, \ - .baseSpDefense = 41, \ - .catchRate = 255, \ - .expYield = 56, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, \ - .speciesName = _("Zigzagoon"), \ - .cryId = CRY_ZIGZAGOON, \ - .natDexNum = NATIONAL_DEX_ZIGZAGOON, \ - .categoryName = _("Tiny Raccoon"), \ - .height = 4, \ - .weight = 175, \ - .pokemonScale = 560, \ - .pokemonOffset = 22, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zigzagoon, \ - .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable - -#define LINOONE_MISC_INFO \ - .baseHP = 78, \ - .baseAttack = 70, \ - .baseDefense = 61, \ - .baseSpeed = 100, \ - .baseSpAttack = 50, \ - .baseSpDefense = 61, \ - .catchRate = 90, \ - .expYield = 147, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Linoone"), \ - .cryId = CRY_LINOONE, \ - .natDexNum = NATIONAL_DEX_LINOONE, \ - .categoryName = _("Rushing"), \ - .height = 5, \ - .weight = 325, \ - .pokemonScale = 321, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Linoone, \ - .formSpeciesIdTable = sLinooneFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ZIGZAGOON_EXP_YIELD 56 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ZIGZAGOON_EXP_YIELD 48 +#else + #define ZIGZAGOON_EXP_YIELD 60 +#endif [SPECIES_ZIGZAGOON] = { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 41, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 41, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = ZIGZAGOON_EXP_YIELD, + .evYield_Speed = 1, .itemCommon = ITEM_POTION, .itemRare = ITEM_REVIVE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Zigzagoon"), + .cryId = CRY_ZIGZAGOON, + .natDexNum = NATIONAL_DEX_ZIGZAGOON, + .categoryName = _("Tiny Raccoon"), + .height = 4, + .weight = 175, .description = COMPOUND_STRING( "Rubbing its nose against the ground, it\n" "always wanders about back and forth in\n" "search of something. It is distinguished\n" "by the zigzag footprints it leaves."), - FRONT_PIC(Zigzagoon, 56, 40), + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Zigzagoon, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Zigzagoon, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Zigzagoon, 56, 56), + .backPic = gMonBackPic_Zigzagoon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Zigzagoon), - ICON(Zigzagoon, 2), - LEARNSETS(Zigzagoon), + .palette = gMonPalette_Zigzagoon, + .shinyPalette = gMonShinyPalette_Zigzagoon, + .iconSprite = gMonIcon_Zigzagoon, + .iconPalIndex = 2, + FOOTPRINT(Zigzagoon) + .levelUpLearnset = sZigzagoonLevelUpLearnset, + .teachableLearnset = sZigzagoonTeachableLearnset, + .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE}), }, [SPECIES_LINOONE] = { - LINOONE_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 78, + .baseAttack = 70, + .baseDefense = 61, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = 61, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, + .evYield_Speed = 2, .itemCommon = ITEM_POTION, .itemRare = ITEM_MAX_REVIVE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Linoone"), + .cryId = CRY_LINOONE, + .natDexNum = NATIONAL_DEX_LINOONE, + .categoryName = _("Rushing"), + .height = 5, + .weight = 325, .description = COMPOUND_STRING( "It is exceedingly fast if it only has to run\n" "in a straight line. When it spots pond-\n" "dwelling prey underwater, it quickly leaps\n" "in and catches it with its sharp claws."), - FRONT_PIC(Linoone, 64, 40), + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Linoone, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Linoone, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Linoone, 56, 40), + .backPic = gMonBackPic_Linoone, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Linoone), - ICON(Linoone, 2), - LEARNSETS(Linoone), + .palette = gMonPalette_Linoone, + .shinyPalette = gMonShinyPalette_Linoone, + .iconSprite = gMonIcon_Linoone, + .iconPalIndex = 2, + FOOTPRINT(Linoone) + .levelUpLearnset = sLinooneLevelUpLearnset, + .teachableLearnset = sLinooneTeachableLearnset, + .formSpeciesIdTable = sLinooneFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ZIGZAGOON_GALARIAN] = { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 41, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 41, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 255, + .expYield = ZIGZAGOON_EXP_YIELD, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Zigzagoon"), + .cryId = CRY_ZIGZAGOON, + .natDexNum = NATIONAL_DEX_ZIGZAGOON, + .categoryName = _("Tiny Raccoon"), + .height = 4, + .weight = 175, .description = COMPOUND_STRING( "Its restlessness has it constantly moving\n" "in zigzags. It will purposely run into other\n" "Pokémon to start fights. It's thought to\n" "be the oldest form of Zigzagoon."), - FRONT_PIC(ZigzagoonGalarian, 56, 40), + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZigzagoonGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_ZigzagoonGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZigzagoonGalarian, 56, 48), + .backPic = gMonBackPic_ZigzagoonGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZigzagoonGalarian), - ICON(ZigzagoonGalarian, 0), - LEARNSETS(ZigzagoonGalarian), + .palette = gMonPalette_ZigzagoonGalarian, + .shinyPalette = gMonShinyPalette_ZigzagoonGalarian, + .iconSprite = gMonIcon_ZigzagoonGalarian, + .iconPalIndex = 0, + FOOTPRINT(Zigzagoon) .isGalarianForm = TRUE, + .levelUpLearnset = sZigzagoonGalarianLevelUpLearnset, + .teachableLearnset = sZigzagoonGalarianTeachableLearnset, + .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}), }, [SPECIES_LINOONE_GALARIAN] = { - LINOONE_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 78, + .baseAttack = 70, + .baseDefense = 61, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = 61, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Linoone"), + .cryId = CRY_LINOONE, + .natDexNum = NATIONAL_DEX_LINOONE, + .categoryName = _("Rushing"), + .height = 5, + .weight = 325, .description = COMPOUND_STRING( "This very aggressive Pokémon will\n" "recklessly challenge opponents stronger\n" "than itself. It uses its long tongue to\n" "taunt them to then tackle forcefully."), - FRONT_PIC(LinooneGalarian, 64, 40), + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LinooneGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_LinooneGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LinooneGalarian, 64, 40), + .backPic = gMonBackPic_LinooneGalarian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LinooneGalarian), - ICON(LinooneGalarian, 0), - LEARNSETS(LinooneGalarian), + .palette = gMonPalette_LinooneGalarian, + .shinyPalette = gMonShinyPalette_LinooneGalarian, + .iconSprite = gMonIcon_LinooneGalarian, + .iconPalIndex = 0, + FOOTPRINT(Linoone) .isGalarianForm = TRUE, + .levelUpLearnset = sLinooneGalarianLevelUpLearnset, + .teachableLearnset = sLinooneGalarianTeachableLearnset, + .formSpeciesIdTable = sLinooneFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}), }, @@ -826,7 +1041,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 81, - .types = { TYPE_DARK, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), .catchRate = 45, .expYield = 260, .evYield_Defense = 3, @@ -834,7 +1049,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECKLESS, ABILITY_GUTS, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Obstagoon"), @@ -852,17 +1067,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Obstagoon, 56, 64), + .frontPic = gMonFrontPic_Obstagoon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Obstagoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Obstagoon, 64, 64), + .backPic = gMonBackPic_Obstagoon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Obstagoon), - ICON(Obstagoon, 0), - .footprint = gMonFootprint_Obstagoon, - LEARNSETS(Obstagoon), + .palette = gMonPalette_Obstagoon, + .shinyPalette = gMonShinyPalette_Obstagoon, + .iconSprite = gMonIcon_Obstagoon, + .iconPalIndex = 0, + FOOTPRINT(Obstagoon) + .levelUpLearnset = sObstagoonLevelUpLearnset, + .teachableLearnset = sObstagoonTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZIGZAGOON @@ -876,9 +1096,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 20, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 56, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 39, + #else + .expYield = 54, + #endif .evYield_HP = 1, .itemCommon = ITEM_PECHA_BERRY, .itemRare = ITEM_BRIGHT_POWDER, @@ -886,7 +1112,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Wurmple"), @@ -904,17 +1130,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wurmple, 40, 40), + .frontPic = gMonFrontPic_Wurmple, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wurmple, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wurmple, 64, 56), + .backPic = gMonBackPic_Wurmple, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wurmple), - ICON(Wurmple, 0), - .footprint = gMonFootprint_Wurmple, - LEARNSETS(Wurmple), + .palette = gMonPalette_Wurmple, + .shinyPalette = gMonShinyPalette_Wurmple, + .iconSprite = gMonIcon_Wurmple, + .iconPalIndex = 0, + FOOTPRINT(Wurmple) + .tmIlliterate = TRUE, + .levelUpLearnset = sWurmpleLevelUpLearnset, + .teachableLearnset = sWurmpleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}), }, @@ -927,16 +1159,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_4) ? 72 : 71, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Silcoon"), .cryId = CRY_SILCOON, @@ -953,17 +1185,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Silcoon, 56, 48), + .frontPic = gMonFrontPic_Silcoon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Silcoon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Silcoon, 64, 40), + .backPic = gMonBackPic_Silcoon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Silcoon), - ICON(Silcoon, 2), - .footprint = gMonFootprint_Silcoon, - LEARNSETS(Silcoon), + .palette = gMonPalette_Silcoon, + .shinyPalette = gMonShinyPalette_Silcoon, + .iconSprite = gMonIcon_Silcoon, + .iconPalIndex = 2, + FOOTPRINT(Silcoon) + .tmIlliterate = TRUE, + .levelUpLearnset = sSilcoonLevelUpLearnset, + .teachableLearnset = sSilcoonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEAUTIFLY}), }, @@ -975,15 +1213,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 198, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 178, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 173, + #else + .expYield = 161, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Beautifly"), @@ -1001,20 +1248,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beautifly, 64, 56), - FRONT_PIC_FEMALE(Beautifly, 64, 56), + .frontPic = gMonFrontPic_Beautifly, + .frontPicFemale = gMonFrontPic_BeautiflyF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Beautifly, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 10, - BACK_PIC(Beautifly, 64, 64), - BACK_PIC_FEMALE(Beautifly, 64, 64), + .backPic = gMonBackPic_Beautifly, + .backPicFemale = gMonBackPic_BeautiflyF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Beautifly), - ICON(Beautifly, 0), - .footprint = gMonFootprint_Beautifly, - LEARNSETS(Beautifly), + .palette = gMonPalette_Beautifly, + .shinyPalette = gMonShinyPalette_Beautifly, + .iconSprite = gMonIcon_Beautifly, + .iconPalIndex = 0, + FOOTPRINT(Beautifly) + .levelUpLearnset = sBeautiflyLevelUpLearnset, + .teachableLearnset = sBeautiflyTeachableLearnset, }, [SPECIES_CASCOON] = @@ -1025,16 +1279,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 72, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 41, + #else + .expYield = 72, + #endif .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Cascoon"), .cryId = CRY_CASCOON, @@ -1051,17 +1311,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cascoon, 56, 48), + .frontPic = gMonFrontPic_Cascoon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cascoon, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cascoon, 56, 40), + .backPic = gMonBackPic_Cascoon, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Cascoon), - ICON(Cascoon, 2), - .footprint = gMonFootprint_Cascoon, - LEARNSETS(Cascoon), + .palette = gMonPalette_Cascoon, + .shinyPalette = gMonShinyPalette_Cascoon, + .iconSprite = gMonIcon_Cascoon, + .iconPalIndex = 2, + FOOTPRINT(Cascoon) + .tmIlliterate = TRUE, + .levelUpLearnset = sCascoonLevelUpLearnset, + .teachableLearnset = sCascoonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DUSTOX}), }, @@ -1073,15 +1339,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 193, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 135, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 161, + #else + .expYield = 160, + #endif .evYield_SpDefense = 3, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_COMPOUND_EYES }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dustox"), @@ -1099,20 +1376,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dustox, 64, 48), - FRONT_PIC_FEMALE(Dustox, 64, 48), + .frontPic = gMonFrontPic_Dustox, + .frontPicFemale = gMonFrontPic_DustoxF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Dustox, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .enemyMonElevation = 12, - BACK_PIC(Dustox, 64, 64), - BACK_PIC_FEMALE(Dustox, 64, 64), + .backPic = gMonBackPic_Dustox, + .backPicFemale = gMonBackPic_DustoxF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dustox), - ICON(Dustox, 5), - .footprint = gMonFootprint_Dustox, - LEARNSETS(Dustox), + .palette = gMonPalette_Dustox, + .shinyPalette = gMonShinyPalette_Dustox, + .iconSprite = gMonIcon_Dustox, + .iconPalIndex = 5, + FOOTPRINT(Dustox) + .levelUpLearnset = sDustoxLevelUpLearnset, + .teachableLearnset = sDustoxTeachableLearnset, }, #endif //P_FAMILY_WURMPLE @@ -1125,16 +1409,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 255, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 74, .evYield_SpDefense = 1, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Lotad"), @@ -1152,17 +1436,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lotad, 40, 40), + .frontPic = gMonFrontPic_Lotad, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Lotad, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lotad, 56, 40), + .backPic = gMonBackPic_Lotad, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Lotad), - ICON(Lotad, 4), - .footprint = gMonFootprint_Lotad, - LEARNSETS(Lotad), + .palette = gMonPalette_Lotad, + .shinyPalette = gMonShinyPalette_Lotad, + .iconSprite = gMonIcon_Lotad, + .iconPalIndex = 4, + FOOTPRINT(Lotad) + .levelUpLearnset = sLotadLevelUpLearnset, + .teachableLearnset = sLotadTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_LOMBRE}), }, @@ -1174,16 +1463,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 141, .evYield_SpDefense = 2, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Lombre"), @@ -1201,17 +1490,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lombre, 48, 48), + .frontPic = gMonFrontPic_Lombre, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Lombre, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lombre, 48, 56), + .backPic = gMonBackPic_Lombre, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Lombre), - ICON(Lombre, 1), - .footprint = gMonFootprint_Lombre, - LEARNSETS(Lombre), + .palette = gMonPalette_Lombre, + .shinyPalette = gMonShinyPalette_Lombre, + .iconSprite = gMonIcon_Lombre, + .iconPalIndex = 1, + FOOTPRINT(Lombre) + .levelUpLearnset = sLombreLevelUpLearnset, + .teachableLearnset = sLombreTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}), }, @@ -1223,16 +1517,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 181, + #endif .evYield_SpDefense = 3, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Ludicolo"), @@ -1250,19 +1550,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = -1, - FRONT_PIC(Ludicolo, 56, 64), - FRONT_PIC_FEMALE(Ludicolo, 56, 64), + .frontPic = gMonFrontPic_Ludicolo, + .frontPicFemale = gMonFrontPic_LudicoloF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ludicolo, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Ludicolo, 64, 56), - BACK_PIC_FEMALE(Ludicolo, 64, 56), + .backPic = gMonBackPic_Ludicolo, + .backPicFemale = gMonBackPic_LudicoloF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Ludicolo), - ICON(Ludicolo, 1), - .footprint = gMonFootprint_Ludicolo, - LEARNSETS(Ludicolo), + .palette = gMonPalette_Ludicolo, + .shinyPalette = gMonShinyPalette_Ludicolo, + .iconSprite = gMonIcon_Ludicolo, + .iconPalIndex = 1, + FOOTPRINT(Ludicolo) + .levelUpLearnset = sLudicoloLevelUpLearnset, + .teachableLearnset = sLudicoloTeachableLearnset, }, #endif //P_FAMILY_LOTAD @@ -1275,15 +1582,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 74, .evYield_Defense = 1, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Seedot"), @@ -1301,17 +1609,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seedot, 32, 40), + .frontPic = gMonFrontPic_Seedot, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Seedot, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Seedot, 48, 48), + .backPic = gMonBackPic_Seedot, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Seedot), - ICON(Seedot, 2), - .footprint = gMonFootprint_Seedot, - LEARNSETS(Seedot), + .palette = gMonPalette_Seedot, + .shinyPalette = gMonShinyPalette_Seedot, + .iconSprite = gMonIcon_Seedot, + .iconPalIndex = 2, + FOOTPRINT(Seedot) + .levelUpLearnset = sSeedotLevelUpLearnset, + .teachableLearnset = sSeedotTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_NUZLEAF}), }, @@ -1323,15 +1636,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 141, .evYield_Attack = 2, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nuzleaf"), @@ -1349,19 +1663,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nuzleaf, 40, 56), - FRONT_PIC_FEMALE(Nuzleaf, 40, 56), + .frontPic = gMonFrontPic_Nuzleaf, + .frontPicFemale = gMonFrontPic_NuzleafF, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Nuzleaf, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nuzleaf, 56, 48), - BACK_PIC_FEMALE(Nuzleaf, 56, 48), + .backPic = gMonBackPic_Nuzleaf, + .backPicFemale = gMonBackPic_NuzleafF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nuzleaf), - ICON(Nuzleaf, 1), - .footprint = gMonFootprint_Nuzleaf, - LEARNSETS(Nuzleaf), + .palette = gMonPalette_Nuzleaf, + .shinyPalette = gMonShinyPalette_Nuzleaf, + .iconSprite = gMonIcon_Nuzleaf, + .iconPalIndex = 1, + FOOTPRINT(Nuzleaf) + .levelUpLearnset = sNuzleafLevelUpLearnset, + .teachableLearnset = sNuzleafTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}), }, @@ -1373,20 +1694,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 181, + #endif .evYield_Attack = 3, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET }, - #else - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET }, + #else + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, + #endif .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shiftry"), .cryId = CRY_SHIFTRY, @@ -1403,19 +1731,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shiftry, 64, 56), - FRONT_PIC_FEMALE(Shiftry, 64, 56), + .frontPic = gMonFrontPic_Shiftry, + .frontPicFemale = gMonFrontPic_ShiftryF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Shiftry, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Shiftry, 64, 56), - BACK_PIC_FEMALE(Shiftry, 64, 56), + .backPic = gMonBackPic_Shiftry, + .backPicFemale = gMonBackPic_ShiftryF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Shiftry), - ICON(Shiftry, 5), - .footprint = gMonFootprint_Shiftry, - LEARNSETS(Shiftry), + .palette = gMonPalette_Shiftry, + .shinyPalette = gMonShinyPalette_Shiftry, + .iconSprite = gMonIcon_Shiftry, + .iconPalIndex = 5, + FOOTPRINT(Shiftry) + .levelUpLearnset = sShiftryLevelUpLearnset, + .teachableLearnset = sShiftryTeachableLearnset, }, #endif //P_FAMILY_SEEDOT @@ -1428,15 +1763,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 85, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 200, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 59, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Taillow"), @@ -1454,17 +1789,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Taillow, 48, 48), + .frontPic = gMonFrontPic_Taillow, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Taillow, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Taillow, 56, 40), + .backPic = gMonBackPic_Taillow, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Taillow), - ICON(Taillow, 2), - .footprint = gMonFootprint_Taillow, - LEARNSETS(Taillow), + .palette = gMonPalette_Taillow, + .shinyPalette = gMonShinyPalette_Taillow, + .iconSprite = gMonIcon_Taillow, + .iconPalIndex = 2, + FOOTPRINT(Taillow) + .levelUpLearnset = sTaillowLevelUpLearnset, + .teachableLearnset = sTaillowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SWELLOW}), }, @@ -1476,15 +1816,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 125, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 75 : 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 151, + #else + .expYield = 162, + #endif .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swellow"), @@ -1502,17 +1848,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swellow, 64, 56), + .frontPic = gMonFrontPic_Swellow, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Swellow, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Swellow, 56, 56), + .backPic = gMonBackPic_Swellow, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Swellow), - ICON(Swellow, 2), - .footprint = gMonFootprint_Swellow, - LEARNSETS(Swellow), + .palette = gMonPalette_Swellow, + .shinyPalette = gMonShinyPalette_Swellow, + .iconSprite = gMonIcon_Swellow, + .iconPalIndex = 2, + FOOTPRINT(Swellow) + .levelUpLearnset = sSwellowLevelUpLearnset, + .teachableLearnset = sSwellowTeachableLearnset, }, #endif //P_FAMILY_TAILLOW @@ -1525,15 +1876,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 190, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 64, .evYield_Speed = 1, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wingull"), @@ -1551,18 +1903,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wingull, 64, 48), + .frontPic = gMonFrontPic_Wingull, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Wingull, .frontAnimId = ANIM_H_PIVOT, .enemyMonElevation = 15, - BACK_PIC(Wingull, 64, 40), + .backPic = gMonBackPic_Wingull, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Wingull), - ICON(Wingull, 0), - .footprint = gMonFootprint_Wingull, - LEARNSETS(Wingull), + .palette = gMonPalette_Wingull, + .shinyPalette = gMonShinyPalette_Wingull, + .iconSprite = gMonIcon_Wingull, + .iconPalIndex = 0, + FOOTPRINT(Wingull) + .levelUpLearnset = sWingullLevelUpLearnset, + .teachableLearnset = sWingullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PELIPPER}), }, @@ -1574,15 +1931,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 95 : 85, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 154, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 151, + #else + .expYield = 164, + #endif .evYield_Defense = 2, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_DRIZZLE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pelipper"), @@ -1600,18 +1964,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pelipper, 64, 64), + .frontPic = gMonFrontPic_Pelipper, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pelipper, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Pelipper, 64, 56), + .backPic = gMonBackPic_Pelipper, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Pelipper), - ICON(Pelipper, 2), - .footprint = gMonFootprint_Pelipper, - LEARNSETS(Pelipper), + .palette = gMonPalette_Pelipper, + .shinyPalette = gMonShinyPalette_Pelipper, + .iconSprite = gMonIcon_Pelipper, + .iconPalIndex = 2, + FOOTPRINT(Pelipper) + .levelUpLearnset = sPelipperLevelUpLearnset, + .teachableLearnset = sPelipperTeachableLearnset, }, #endif //P_FAMILY_WINGULL @@ -1619,9 +1988,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = #define RALTS_FAMILY_TYPE2 (P_UPDATED_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_PSYCHIC) #if P_UPDATED_EGG_GROUPS >= GEN_8 - #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS } + #define RALTS_FAMILY_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS) #else - #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS } + #define RALTS_FAMILY_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS) #endif [SPECIES_RALTS] = @@ -1632,9 +2001,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 35, - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), .catchRate = 235, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 70, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, @@ -1658,17 +2027,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ralts, 24, 40), + .frontPic = gMonFrontPic_Ralts, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ralts, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Ralts, 32, 40), + .backPic = gMonBackPic_Ralts, + .backPicSize = MON_COORDS_SIZE(32, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Ralts), - ICON(Ralts, 1), - .footprint = gMonFootprint_Ralts, - LEARNSETS(Ralts), + .palette = gMonPalette_Ralts, + .shinyPalette = gMonShinyPalette_Ralts, + .iconSprite = gMonIcon_Ralts, + .iconPalIndex = 1, + FOOTPRINT(Ralts) + .levelUpLearnset = sRaltsLevelUpLearnset, + .teachableLearnset = sRaltsTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_KIRLIA}), }, @@ -1680,9 +2054,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), .catchRate = 120, - .expYield = 97, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 97 : 140, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, @@ -1706,190 +2080,262 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kirlia, 32, 56), + .frontPic = gMonFrontPic_Kirlia, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kirlia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kirlia, 48, 56), + .backPic = gMonBackPic_Kirlia, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Kirlia), - ICON(Kirlia, 1), - .footprint = gMonFootprint_Kirlia, - LEARNSETS(Kirlia), + .palette = gMonPalette_Kirlia, + .shinyPalette = gMonShinyPalette_Kirlia, + .iconSprite = gMonIcon_Kirlia, + .iconPalIndex = 1, + FOOTPRINT(Kirlia) + .levelUpLearnset = sKirliaLevelUpLearnset, + .teachableLearnset = sKirliaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GARDEVOIR}, - {EVO_ITEM_MALE, ITEM_SUN_STONE, SPECIES_GALLADE}), + {EVO_ITEM_MALE, ITEM_DAWN_STONE, SPECIES_GALLADE}), }, -#define GARDEVOIR_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Gardevoir"), \ - .natDexNum = NATIONAL_DEX_GARDEVOIR, \ - .categoryName = _("Embrace"), \ - .height = 16, \ - .weight = 484, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Gardevoir, \ - LEARNSETS(Gardevoir), \ - .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, \ - .formChangeTable = sGardevoirFormChangeTable - [SPECIES_GARDEVOIR] = { - GARDEVOIR_MISC_INFO, .baseHP = 68, .baseAttack = 65, .baseDefense = 65, .baseSpeed = 80, .baseSpAttack = 125, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 259, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 233, + #else + .expYield = 208, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gardevoir"), .cryId = CRY_GARDEVOIR, + .natDexNum = NATIONAL_DEX_GARDEVOIR, + .categoryName = _("Embrace"), + .height = 16, + .weight = 484, .description = COMPOUND_STRING( "It apparently does not feel the pull of\n" "gravity because it supports itself with\n" "psychic power. It will give its life to\n" "protect its Trainer."), - FRONT_PIC(Gardevoir, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Gardevoir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gardevoir, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gardevoir, 48, 56), + .backPic = gMonBackPic_Gardevoir, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gardevoir), - ICON(Gardevoir, 1), + .palette = gMonPalette_Gardevoir, + .shinyPalette = gMonShinyPalette_Gardevoir, + .iconSprite = gMonIcon_Gardevoir, + .iconPalIndex = 1, + FOOTPRINT(Gardevoir) + .levelUpLearnset = sGardevoirLevelUpLearnset, + .teachableLearnset = sGardevoirTeachableLearnset, + .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, + .formChangeTable = sGardevoirFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GARDEVOIR_MEGA] = { - GARDEVOIR_MISC_INFO, .baseHP = 68, .baseAttack = 85, .baseDefense = 65, .baseSpeed = 100, .baseSpAttack = 165, .baseSpDefense = 135, - .expYield = 278, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 309 : 278, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gardevoir"), .cryId = CRY_GARDEVOIR_MEGA, + .natDexNum = NATIONAL_DEX_GARDEVOIR, + .categoryName = _("Embrace"), + .height = 16, + .weight = 484, .description = COMPOUND_STRING( "By opening its heart, Mega Gardevoir\n" "becomes able to use tremendous psychic\n" "power. The red plate in its chest is said to\n" "be a physical manifestation of its heart."), - FRONT_PIC(GardevoirMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GardevoirMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GardevoirMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GardevoirMega, 48, 56), + .backPic = gMonBackPic_GardevoirMega, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(GardevoirMega), - ICON(GardevoirMega, 1), + .palette = gMonPalette_GardevoirMega, + .shinyPalette = gMonShinyPalette_GardevoirMega, + .iconSprite = gMonIcon_GardevoirMega, + .iconPalIndex = 1, + FOOTPRINT(Gardevoir) .isMegaEvolution = TRUE, + .levelUpLearnset = sGardevoirLevelUpLearnset, + .teachableLearnset = sGardevoirTeachableLearnset, + .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, + .formChangeTable = sGardevoirFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GEN_4_CROSS_EVOS -#define GALLADE_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Gallade"), \ - .natDexNum = NATIONAL_DEX_GALLADE, \ - .categoryName = _("Blade"), \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Gallade, \ - LEARNSETS(Gallade), \ - .formSpeciesIdTable = sGalladeFormSpeciesIdTable, \ - .formChangeTable = sGalladeFormChangeTable - [SPECIES_GALLADE] = { - GALLADE_MISC_INFO, .baseHP = 68, .baseAttack = 125, .baseDefense = 65, .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 259, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 233, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED }, - #else - .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED }, - #endif + #else + .expYield = 208, + #endif + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED }, + #else + .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED }, + #endif + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gallade"), .cryId = CRY_GALLADE, + .natDexNum = NATIONAL_DEX_GALLADE, + .categoryName = _("Blade"), + .height = 16, .weight = 520, .description = COMPOUND_STRING( "A master of courtesy and swordsmanship,\n" "it fights using extending swords on its\n" "elbows when trying to protect someone.\n" "It can sense what its foe is thinking."), - FRONT_PIC(Gallade, 56, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Gallade, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Gallade, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Gallade, 64, 64), + .backPic = gMonBackPic_Gallade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gallade), - ICON(Gallade, 1), + .palette = gMonPalette_Gallade, + .shinyPalette = gMonShinyPalette_Gallade, + .iconSprite = gMonIcon_Gallade, + .iconPalIndex = 1, + FOOTPRINT(Gallade) + .levelUpLearnset = sGalladeLevelUpLearnset, + .teachableLearnset = sGalladeTeachableLearnset, + .formSpeciesIdTable = sGalladeFormSpeciesIdTable, + .formChangeTable = sGalladeFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GALLADE_MEGA] = { - GALLADE_MISC_INFO, .baseHP = 68, .baseAttack = 165, .baseDefense = 95, .baseSpeed = 110, .baseSpAttack = 65, .baseSpDefense = 115, - .expYield = 278, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 309 : 278, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gallade"), .cryId = CRY_GALLADE_MEGA, + .natDexNum = NATIONAL_DEX_GALLADE, + .categoryName = _("Blade"), + .height = 16, .weight = 564, .description = COMPOUND_STRING( "Mega Gallade has a knightly appearance.\n" "It can use its psychic power to reshape\n" "both arms into blades simultaneously and\n" "fight using a dual-wielding style."), - FRONT_PIC(GalladeMega, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_GalladeMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GalladeMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GalladeMega, 64, 64), + .backPic = gMonBackPic_GalladeMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(GalladeMega), - ICON(GalladeMega, 1), + .palette = gMonPalette_GalladeMega, + .shinyPalette = gMonShinyPalette_GalladeMega, + .iconSprite = gMonIcon_GalladeMega, + .iconPalIndex = 1, + FOOTPRINT(Gallade) .isMegaEvolution = TRUE, + .levelUpLearnset = sGalladeLevelUpLearnset, + .teachableLearnset = sGalladeTeachableLearnset, + .formSpeciesIdTable = sGalladeFormSpeciesIdTable, + .formChangeTable = sGalladeFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_4_CROSS_EVOS @@ -1904,15 +2350,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 52, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 200, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 63, .evYield_Speed = 1, + .itemCommon = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Surskit"), @@ -1930,17 +2377,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Surskit, 48, 48), + .frontPic = gMonFrontPic_Surskit, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Surskit, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Surskit, 56, 40), + .backPic = gMonBackPic_Surskit, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Surskit), - ICON(Surskit, 0), - .footprint = gMonFootprint_Surskit, - LEARNSETS(Surskit), + .palette = gMonPalette_Surskit, + .shinyPalette = gMonShinyPalette_Surskit, + .iconSprite = gMonIcon_Surskit, + .iconPalIndex = 0, + FOOTPRINT(Surskit) + .levelUpLearnset = sSurskitLevelUpLearnset, + .teachableLearnset = sSurskitTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_MASQUERAIN}), }, @@ -1949,17 +2401,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseHP = 70, .baseAttack = 60, .baseDefense = 62, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 80 : 60, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 100 : 80, .baseSpDefense = 82, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 80, - .baseSpAttack = 100, - #else - .baseSpeed = 60, - .baseSpAttack = 80, - #endif - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 145, + #else + .expYield = 128, + #endif .evYield_SpAttack = 1, .evYield_SpDefense = 1, .itemRare = ITEM_SILVER_POWDER, @@ -1967,7 +2420,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Masquerain"), @@ -1985,18 +2438,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Masquerain, 64, 64), + .frontPic = gMonFrontPic_Masquerain, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Masquerain, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(Masquerain, 64, 64), + .backPic = gMonBackPic_Masquerain, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Masquerain), - ICON(Masquerain, 0), - .footprint = gMonFootprint_Masquerain, - LEARNSETS(Masquerain), + .palette = gMonPalette_Masquerain, + .shinyPalette = gMonShinyPalette_Masquerain, + .iconSprite = gMonIcon_Masquerain, + .iconPalIndex = 0, + FOOTPRINT(Masquerain) + .levelUpLearnset = sMasquerainLevelUpLearnset, + .teachableLearnset = sMasquerainTeachableLearnset, }, #endif //P_FAMILY_SURSKIT @@ -2009,9 +2467,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 65, .evYield_HP = 1, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -2019,7 +2477,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shroomish"), @@ -2037,17 +2495,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shroomish, 40, 40), + .frontPic = gMonFrontPic_Shroomish, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Shroomish, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shroomish, 56, 48), + .backPic = gMonBackPic_Shroomish, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shroomish), - ICON(Shroomish, 1), - .footprint = gMonFootprint_Shroomish, - LEARNSETS(Shroomish), + .palette = gMonPalette_Shroomish, + .shinyPalette = gMonShinyPalette_Shroomish, + .iconSprite = gMonIcon_Shroomish, + .iconPalIndex = 1, + FOOTPRINT(Shroomish) + .levelUpLearnset = sShroomishLevelUpLearnset, + .teachableLearnset = sShroomishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_BRELOOM}), }, @@ -2059,9 +2522,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 90, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 165, .evYield_Attack = 2, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -2069,7 +2532,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Breloom"), @@ -2087,17 +2550,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Breloom, 48, 64), + .frontPic = gMonFrontPic_Breloom, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Breloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Breloom, 64, 64), + .backPic = gMonBackPic_Breloom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Breloom), - ICON(Breloom, 1), - .footprint = gMonFootprint_Breloom, - LEARNSETS(Breloom), + .palette = gMonPalette_Breloom, + .shinyPalette = gMonShinyPalette_Breloom, + .iconSprite = gMonIcon_Breloom, + .iconPalIndex = 1, + FOOTPRINT(Breloom) + .levelUpLearnset = sBreloomLevelUpLearnset, + .teachableLearnset = sBreloomTeachableLearnset, }, #endif //P_FAMILY_SHROOMISH @@ -2110,16 +2578,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 83, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TRUANT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Slakoth"), .cryId = CRY_SLAKOTH, @@ -2136,17 +2604,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Slakoth, 56, 40), + .frontPic = gMonFrontPic_Slakoth, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Slakoth, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slakoth, 64, 40), + .backPic = gMonBackPic_Slakoth, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Slakoth), - ICON(Slakoth, 2), - .footprint = gMonFootprint_Slakoth, - LEARNSETS(Slakoth), + .palette = gMonPalette_Slakoth, + .shinyPalette = gMonShinyPalette_Slakoth, + .iconSprite = gMonIcon_Slakoth, + .iconPalIndex = 2, + FOOTPRINT(Slakoth) + .levelUpLearnset = sSlakothLevelUpLearnset, + .teachableLearnset = sSlakothTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_VIGOROTH}), }, @@ -2158,16 +2631,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 126, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vigoroth"), .cryId = CRY_VIGOROTH, @@ -2184,17 +2657,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vigoroth, 64, 56), + .frontPic = gMonFrontPic_Vigoroth, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Vigoroth, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Vigoroth, 56, 64), + .backPic = gMonBackPic_Vigoroth, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Vigoroth), - ICON(Vigoroth, 2), - .footprint = gMonFootprint_Vigoroth, - LEARNSETS(Vigoroth), + .palette = gMonPalette_Vigoroth, + .shinyPalette = gMonShinyPalette_Vigoroth, + .iconSprite = gMonIcon_Vigoroth, + .iconPalIndex = 2, + FOOTPRINT(Vigoroth) + .levelUpLearnset = sVigorothLevelUpLearnset, + .teachableLearnset = sVigorothTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SLAKING}), }, @@ -2206,16 +2684,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 95, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 285, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 252, + #else + .expYield = 210, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TRUANT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Slaking"), .cryId = CRY_SLAKING, @@ -2232,17 +2716,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 300, .trainerOffset = 1, - FRONT_PIC(Slaking, 64, 56), + .frontPic = gMonFrontPic_Slaking, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Slaking, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slaking, 64, 56), + .backPic = gMonBackPic_Slaking, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Slaking), - ICON(Slaking, 2), - .footprint = gMonFootprint_Slaking, - LEARNSETS(Slaking), + .palette = gMonPalette_Slaking, + .shinyPalette = gMonShinyPalette_Slaking, + .iconSprite = gMonIcon_Slaking, + .iconPalIndex = 2, + FOOTPRINT(Slaking) + .levelUpLearnset = sSlakingLevelUpLearnset, + .teachableLearnset = sSlakingTeachableLearnset, }, #endif //P_FAMILY_SLAKOTH @@ -2255,16 +2744,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GROUND }, + .types = MON_TYPES(TYPE_BUG, TYPE_GROUND), .catchRate = 255, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 65, .evYield_Defense = 1, .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nincada"), @@ -2282,17 +2771,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nincada, 56, 32), + .frontPic = gMonFrontPic_Nincada, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Nincada, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nincada, 64, 32), + .backPic = gMonBackPic_Nincada, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Nincada), - ICON(Nincada, 1), - .footprint = gMonFootprint_Nincada, - LEARNSETS(Nincada), + .palette = gMonPalette_Nincada, + .shinyPalette = gMonShinyPalette_Nincada, + .iconSprite = gMonIcon_Nincada, + .iconPalIndex = 1, + FOOTPRINT(Nincada) + .levelUpLearnset = sNincadaLevelUpLearnset, + .teachableLearnset = sNincadaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}), }, @@ -2305,15 +2799,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 160, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 120, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 155, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Ninjask"), @@ -2331,18 +2825,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ninjask, 64, 48), + .frontPic = gMonFrontPic_Ninjask, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Ninjask, .frontAnimId = ANIM_H_SLIDE_SLOW, .enemyMonElevation = 10, - BACK_PIC(Ninjask, 64, 40), + .backPic = gMonBackPic_Ninjask, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Ninjask), - ICON(Ninjask, 1), - .footprint = gMonFootprint_Ninjask, - LEARNSETS(Ninjask), + .palette = gMonPalette_Ninjask, + .shinyPalette = gMonShinyPalette_Ninjask, + .iconSprite = gMonIcon_Ninjask, + .iconPalIndex = 1, + FOOTPRINT(Ninjask) + .levelUpLearnset = sNinjaskLevelUpLearnset, + .teachableLearnset = sNinjaskTeachableLearnset, }, [SPECIES_SHEDINJA] = @@ -2353,16 +2852,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GHOST }, + .types = MON_TYPES(TYPE_BUG, TYPE_GHOST), .catchRate = 45, - .expYield = 83, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 83 : 95, .evYield_HP = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_WONDER_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_WONDER_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shedinja"), .cryId = CRY_SHEDINJA, @@ -2379,18 +2878,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shedinja, 48, 48), + .frontPic = gMonFrontPic_Shedinja, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Shedinja, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Shedinja, 64, 56), + .backPic = gMonBackPic_Shedinja, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Shedinja), - ICON(Shedinja, 1), - .footprint = gMonFootprint_Shedinja, - LEARNSETS(Shedinja), + .palette = gMonPalette_Shedinja, + .shinyPalette = gMonShinyPalette_Shedinja, + .iconSprite = gMonIcon_Shedinja, + .iconPalIndex = 1, + FOOTPRINT(Shedinja) + .levelUpLearnset = sShedinjaLevelUpLearnset, + .teachableLearnset = sShedinjaTeachableLearnset, }, #endif //P_FAMILY_NINCADA @@ -2403,15 +2907,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 28, .baseSpAttack = 51, .baseSpDefense = 23, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 48, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 48 : 68, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Whismur"), @@ -2429,17 +2933,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whismur, 48, 40), + .frontPic = gMonFrontPic_Whismur, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Whismur, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Whismur, 56, 40), + .backPic = gMonBackPic_Whismur, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Whismur), - ICON(Whismur, 1), - .footprint = gMonFootprint_Whismur, - LEARNSETS(Whismur), + .palette = gMonPalette_Whismur, + .shinyPalette = gMonShinyPalette_Whismur, + .iconSprite = gMonIcon_Whismur, + .iconPalIndex = 1, + FOOTPRINT(Whismur) + .levelUpLearnset = sWhismurLevelUpLearnset, + .teachableLearnset = sWhismurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LOUDRED}), }, @@ -2451,7 +2960,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 48, .baseSpAttack = 71, .baseSpDefense = 43, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, .expYield = 126, .evYield_HP = 2, @@ -2459,7 +2968,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Loudred"), @@ -2477,17 +2986,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Loudred, 56, 64), + .frontPic = gMonFrontPic_Loudred, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Loudred, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Loudred, 64, 56), + .backPic = gMonBackPic_Loudred, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Loudred), - ICON(Loudred, 2), - .footprint = gMonFootprint_Loudred, - LEARNSETS(Loudred), + .palette = gMonPalette_Loudred, + .shinyPalette = gMonShinyPalette_Loudred, + .iconSprite = gMonIcon_Loudred, + .iconPalIndex = 2, + FOOTPRINT(Loudred) + .levelUpLearnset = sLoudredLevelUpLearnset, + .teachableLearnset = sLoudredTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_EXPLOUD}), }, @@ -2499,15 +3013,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 68, .baseSpAttack = 91, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 73 : 63, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Exploud"), @@ -2525,17 +3047,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Exploud, 64, 64), + .frontPic = gMonFrontPic_Exploud, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Exploud, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Exploud, 64, 64), + .backPic = gMonBackPic_Exploud, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Exploud), - ICON(Exploud, 2), - .footprint = gMonFootprint_Exploud, - LEARNSETS(Exploud), + .palette = gMonPalette_Exploud, + .shinyPalette = gMonShinyPalette_Exploud, + .iconSprite = gMonIcon_Exploud, + .iconPalIndex = 2, + FOOTPRINT(Exploud) + .levelUpLearnset = sExploudLevelUpLearnset, + .teachableLearnset = sExploudTeachableLearnset, }, #endif //P_FAMILY_WHISMUR @@ -2548,16 +3075,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, - .expYield = 47, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 47 : 87, .evYield_HP = 1, .itemRare = ITEM_BLACK_BELT, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Makuhita"), @@ -2575,17 +3102,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Makuhita, 48, 48), + .frontPic = gMonFrontPic_Makuhita, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Makuhita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Makuhita, 56, 56), + .backPic = gMonBackPic_Makuhita, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Makuhita), - ICON(Makuhita, 1), - .footprint = gMonFootprint_Makuhita, - LEARNSETS(Makuhita), + .palette = gMonPalette_Makuhita, + .shinyPalette = gMonShinyPalette_Makuhita, + .iconSprite = gMonIcon_Makuhita, + .iconPalIndex = 1, + FOOTPRINT(Makuhita) + .levelUpLearnset = sMakuhitaLevelUpLearnset, + .teachableLearnset = sMakuhitaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HARIYAMA}), }, @@ -2597,16 +3129,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 200, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 184, .evYield_HP = 2, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hariyama"), @@ -2624,17 +3156,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 343, .trainerOffset = 7, - FRONT_PIC(Hariyama, 64, 64), + .frontPic = gMonFrontPic_Hariyama, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hariyama, .frontAnimId = ANIM_ROTATE_UP_TO_SIDES, - BACK_PIC(Hariyama, 64, 56), + .backPic = gMonBackPic_Hariyama, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Hariyama), - ICON(Hariyama, 2), - .footprint = gMonFootprint_Hariyama, - LEARNSETS(Hariyama), + .palette = gMonPalette_Hariyama, + .shinyPalette = gMonShinyPalette_Hariyama, + .iconSprite = gMonIcon_Hariyama, + .iconPalIndex = 2, + FOOTPRINT(Hariyama) + .levelUpLearnset = sHariyamaLevelUpLearnset, + .teachableLearnset = sHariyamaTeachableLearnset, }, #endif //P_FAMILY_MAKUHITA @@ -2647,16 +3184,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, - .expYield = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 75 : 108, .evYield_Defense = 1, .itemRare = ITEM_MAGNET, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nosepass"), @@ -2674,18 +3211,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 289, .trainerOffset = 3, - FRONT_PIC(Nosepass, 40, 48), + .frontPic = gMonFrontPic_Nosepass, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Nosepass, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Nosepass, 56, 48), + .backPic = gMonBackPic_Nosepass, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Nosepass), - ICON(Nosepass, 0), - .footprint = gMonFootprint_Nosepass, - LEARNSETS(Nosepass), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}), + .palette = gMonPalette_Nosepass, + .shinyPalette = gMonShinyPalette_Nosepass, + .iconSprite = gMonIcon_Nosepass, + .iconPalIndex = 0, + FOOTPRINT(Nosepass) + .levelUpLearnset = sNosepassLevelUpLearnset, + .teachableLearnset = sNosepassTeachableLearnset, + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_PROBOPASS}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}), }, #if P_GEN_4_CROSS_EVOS @@ -2697,9 +3240,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 75, .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Defense = 1, .evYield_SpDefense = 2, .itemRare = ITEM_MAGNET, @@ -2707,7 +3250,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Probopass"), @@ -2725,18 +3268,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Probopass, 56, 56), + .frontPic = gMonFrontPic_Probopass, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Probopass, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 6, - BACK_PIC(Probopass, 64, 56), + .backPic = gMonBackPic_Probopass, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Probopass), - ICON(Probopass, 0), - .footprint = gMonFootprint_Probopass, - LEARNSETS(Probopass), + .palette = gMonPalette_Probopass, + .shinyPalette = gMonShinyPalette_Probopass, + .iconSprite = gMonIcon_Probopass, + .iconPalIndex = 0, + FOOTPRINT(Probopass) + .levelUpLearnset = sProbopassLevelUpLearnset, + .teachableLearnset = sProbopassTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_NOSEPASS @@ -2750,15 +3298,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Skitty"), @@ -2776,17 +3324,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skitty, 56, 40), + .frontPic = gMonFrontPic_Skitty, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Skitty, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skitty, 64, 56), + .backPic = gMonBackPic_Skitty, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Skitty), - ICON(Skitty, 0), - .footprint = gMonFootprint_Skitty, - LEARNSETS(Skitty), + .palette = gMonPalette_Skitty, + .shinyPalette = gMonShinyPalette_Skitty, + .iconSprite = gMonIcon_Skitty, + .iconPalIndex = 0, + FOOTPRINT(Skitty) + .levelUpLearnset = sSkittyLevelUpLearnset, + .teachableLearnset = sSkittyTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}), }, @@ -2798,16 +3351,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 90 : 70, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 140, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 133, + #else + .expYield = 138, + #endif .evYield_HP = 1, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Delcatty"), @@ -2825,53 +3384,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Delcatty, 56, 56), + .frontPic = gMonFrontPic_Delcatty, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Delcatty, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Delcatty, 64, 64), + .backPic = gMonBackPic_Delcatty, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Delcatty), - ICON(Delcatty, 2), - .footprint = gMonFootprint_Delcatty, - LEARNSETS(Delcatty), + .palette = gMonPalette_Delcatty, + .shinyPalette = gMonShinyPalette_Delcatty, + .iconSprite = gMonIcon_Delcatty, + .iconPalIndex = 2, + FOOTPRINT(Delcatty) + .levelUpLearnset = sDelcattyLevelUpLearnset, + .teachableLearnset = sDelcattyTeachableLearnset, }, #endif //P_FAMILY_SKITTY #if P_FAMILY_SABLEYE -#define SABLEYE_MISC_INFO \ - .types = { TYPE_DARK, TYPE_GHOST }, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sableye"), \ - .natDexNum = NATIONAL_DEX_SABLEYE, \ - .categoryName = _("Darkness"), \ - .height = 5, \ - .footprint = gMonFootprint_Sableye, \ - LEARNSETS(Sableye), \ - .formSpeciesIdTable = sSableyeFormSpeciesIdTable, \ - .formChangeTable = sSableyeFormChangeTable - [SPECIES_SABLEYE] = { - SABLEYE_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 75, .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 65, - .expYield = 133, + .types = MON_TYPES(TYPE_DARK, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 133 : 98, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemRare = ITEM_WIDE_LENS, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_KEEN_EYE, ABILITY_STALL, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sableye"), .cryId = CRY_SABLEYE, + .natDexNum = NATIONAL_DEX_SABLEYE, + .categoryName = _("Darkness"), + .height = 5, .weight = 110, .description = COMPOUND_STRING( "It digs branching holes in caves using its\n" @@ -2882,30 +3440,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sableye, 48, 48), + .frontPic = gMonFrontPic_Sableye, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Sableye, .frontAnimId = ANIM_GLOW_BLACK, - BACK_PIC(Sableye, 48, 48), + .backPic = gMonBackPic_Sableye, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Sableye), - ICON(Sableye, 2), + .palette = gMonPalette_Sableye, + .shinyPalette = gMonShinyPalette_Sableye, + .iconSprite = gMonIcon_Sableye, + .iconPalIndex = 2, + FOOTPRINT(Sableye) + .levelUpLearnset = sSableyeLevelUpLearnset, + .teachableLearnset = sSableyeTeachableLearnset, + .formSpeciesIdTable = sSableyeFormSpeciesIdTable, + .formChangeTable = sSableyeFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SABLEYE_MEGA] = { - SABLEYE_MISC_INFO, .baseHP = 50, .baseAttack = 85, .baseDefense = 125, .baseSpeed = 20, .baseSpAttack = 85, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_DARK, TYPE_GHOST), + .catchRate = 45, .expYield = 168, + .evYield_Attack = 1, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sableye"), .cryId = CRY_SABLEYE_MEGA, + .natDexNum = NATIONAL_DEX_SABLEYE, + .categoryName = _("Darkness"), + .height = 5, .weight = 1610, .description = COMPOUND_STRING( "Bathed in the energy of Mega Evolution,\n" @@ -2915,16 +3495,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SableyeMega, 64, 64), + .frontPic = gMonFrontPic_SableyeMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_SableyeMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SableyeMega, 64, 64), + .backPic = gMonBackPic_SableyeMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(SableyeMega), - ICON(SableyeMega, 2), + .palette = gMonPalette_SableyeMega, + .shinyPalette = gMonShinyPalette_SableyeMega, + .iconSprite = gMonIcon_SableyeMega, + .iconPalIndex = 2, + FOOTPRINT(Sableye) .isMegaEvolution = TRUE, + .levelUpLearnset = sSableyeLevelUpLearnset, + .teachableLearnset = sSableyeTeachableLearnset, + .formSpeciesIdTable = sSableyeFormSpeciesIdTable, + .formChangeTable = sSableyeFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SABLEYE @@ -2936,37 +3525,31 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = #define MAWILE_TYPES { TYPE_STEEL, TYPE_STEEL } #endif -#define MAWILE_MISC_INFO \ - .types = MAWILE_TYPES, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Mawile"), \ - .natDexNum = NATIONAL_DEX_MAWILE, \ - .categoryName = _("Deceiver"), \ - .footprint = gMonFootprint_Mawile, \ - LEARNSETS(Mawile), \ - .formSpeciesIdTable = sMawileFormSpeciesIdTable, \ - .formChangeTable = sMawileFormChangeTable - [SPECIES_MAWILE] = { - MAWILE_MISC_INFO, .baseHP = 50, .baseAttack = 85, .baseDefense = 85, .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 55, - .expYield = 133, + .types = MAWILE_TYPES, + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 133 : 98, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemRare = ITEM_IRON_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Mawile"), .cryId = CRY_MAWILE, + .natDexNum = NATIONAL_DEX_MAWILE, + .categoryName = _("Deceiver"), .height = 6, .weight = 115, .description = COMPOUND_STRING( @@ -2978,30 +3561,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mawile, 64, 48), + .frontPic = gMonFrontPic_Mawile, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Mawile, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mawile, 64, 56), + .backPic = gMonBackPic_Mawile, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Mawile), - ICON(Mawile, 2), + .palette = gMonPalette_Mawile, + .shinyPalette = gMonShinyPalette_Mawile, + .iconSprite = gMonIcon_Mawile, + .iconPalIndex = 2, + FOOTPRINT(Mawile) + .levelUpLearnset = sMawileLevelUpLearnset, + .teachableLearnset = sMawileTeachableLearnset, + .formSpeciesIdTable = sMawileFormSpeciesIdTable, + .formChangeTable = sMawileFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MAWILE_MEGA] = { - MAWILE_MISC_INFO, .baseHP = 50, .baseAttack = 105, .baseDefense = 125, .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 95, + .types = MAWILE_TYPES, + .catchRate = 45, .expYield = 168, + .evYield_Attack = 1, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUGE_POWER, ABILITY_HUGE_POWER, ABILITY_HUGE_POWER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Mawile"), .cryId = CRY_MAWILE_MEGA, + .natDexNum = NATIONAL_DEX_MAWILE, + .categoryName = _("Deceiver"), .height = 10, .weight = 235, .description = COMPOUND_STRING( @@ -3013,16 +3617,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MawileMega, 64, 64), + .frontPic = gMonFrontPic_MawileMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_MawileMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MawileMega, 64, 64), + .backPic = gMonBackPic_MawileMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(MawileMega), - ICON(MawileMega, 0), + .palette = gMonPalette_MawileMega, + .shinyPalette = gMonShinyPalette_MawileMega, + .iconSprite = gMonIcon_MawileMega, + .iconPalIndex = 0, + FOOTPRINT(Mawile) .isMegaEvolution = TRUE, + .levelUpLearnset = sMawileLevelUpLearnset, + .teachableLearnset = sMawileTeachableLearnset, + .formSpeciesIdTable = sMawileFormSpeciesIdTable, + .formChangeTable = sMawileFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAWILE @@ -3036,16 +3649,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), .catchRate = 180, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 96, .evYield_Defense = 1, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Aron"), @@ -3063,17 +3676,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aron, 32, 40), + .frontPic = gMonFrontPic_Aron, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Aron, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Aron, 48, 40), + .backPic = gMonBackPic_Aron, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Aron), - ICON(Aron, 2), - .footprint = gMonFootprint_Aron, - LEARNSETS(Aron), + .palette = gMonPalette_Aron, + .shinyPalette = gMonShinyPalette_Aron, + .iconSprite = gMonIcon_Aron, + .iconPalIndex = 2, + FOOTPRINT(Aron) + .levelUpLearnset = sAronLevelUpLearnset, + .teachableLearnset = sAronTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_LAIRON}), }, @@ -3085,16 +3703,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), .catchRate = 90, - .expYield = 151, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 151 : 152, .evYield_Defense = 2, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lairon"), @@ -3112,51 +3730,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lairon, 56, 48), + .frontPic = gMonFrontPic_Lairon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Lairon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lairon, 64, 40), + .backPic = gMonBackPic_Lairon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Lairon), - ICON(Lairon, 2), - .footprint = gMonFootprint_Lairon, - LEARNSETS(Lairon), + .palette = gMonPalette_Lairon, + .shinyPalette = gMonShinyPalette_Lairon, + .iconSprite = gMonIcon_Lairon, + .iconPalIndex = 2, + FOOTPRINT(Lairon) + .levelUpLearnset = sLaironLevelUpLearnset, + .teachableLearnset = sLaironTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_AGGRON}), }, -#define AGGRON_MISC_INFO \ - .catchRate = 45, \ - .evYield_Defense = 3, \ - .itemRare = ITEM_HARD_STONE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 35, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Aggron"), \ - .natDexNum = NATIONAL_DEX_AGGRON, \ - .categoryName = _("Iron Armor"), \ - .footprint = gMonFootprint_Aggron, \ - LEARNSETS(Aggron), \ - .formSpeciesIdTable = sAggronFormSpeciesIdTable, \ - .formChangeTable = sAggronFormChangeTable - [SPECIES_AGGRON] = { - AGGRON_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 180, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 205, + #endif + .evYield_Defense = 3, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Aggron"), .cryId = CRY_AGGRON, + .natDexNum = NATIONAL_DEX_AGGRON, + .categoryName = _("Iron Armor"), .height = 21, .weight = 3600, .description = COMPOUND_STRING( @@ -3168,31 +3790,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 350, .trainerOffset = 6, - FRONT_PIC(Aggron, 64, 64), + .frontPic = gMonFrontPic_Aggron, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Aggron, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Aggron, 64, 56), + .backPic = gMonBackPic_Aggron, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Aggron), - ICON(Aggron, 2), + .palette = gMonPalette_Aggron, + .shinyPalette = gMonShinyPalette_Aggron, + .iconSprite = gMonIcon_Aggron, + .iconPalIndex = 2, + FOOTPRINT(Aggron) + .levelUpLearnset = sAggronLevelUpLearnset, + .teachableLearnset = sAggronTeachableLearnset, + .formSpeciesIdTable = sAggronFormSpeciesIdTable, + .formChangeTable = sAggronFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AGGRON_MEGA] = { - AGGRON_MISC_INFO, .baseHP = 70, .baseAttack = 140, .baseDefense = 230, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_STEEL }, - .expYield = 284, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Defense = 3, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_FILTER, ABILITY_FILTER, ABILITY_FILTER }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Aggron"), .cryId = CRY_AGGRON_MEGA, + .natDexNum = NATIONAL_DEX_AGGRON, + .categoryName = _("Iron Armor"), .height = 22, .weight = 3950, .description = COMPOUND_STRING( @@ -3204,16 +3846,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 350, .trainerOffset = 6, - FRONT_PIC(AggronMega, 64, 64), + .frontPic = gMonFrontPic_AggronMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AggronMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AggronMega, 64, 56), + .backPic = gMonBackPic_AggronMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(AggronMega), - ICON(AggronMega, 2), + .palette = gMonPalette_AggronMega, + .shinyPalette = gMonShinyPalette_AggronMega, + .iconSprite = gMonIcon_AggronMega, + .iconPalIndex = 2, + FOOTPRINT(Aggron) .isMegaEvolution = TRUE, + .levelUpLearnset = sAggronLevelUpLearnset, + .teachableLearnset = sAggronTeachableLearnset, + .formSpeciesIdTable = sAggronFormSpeciesIdTable, + .formChangeTable = sAggronFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ARON @@ -3227,15 +3878,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), .catchRate = 180, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 91, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Meditite"), @@ -3253,104 +3904,141 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meditite, 48, 48), - FRONT_PIC_FEMALE(Meditite, 48, 48), + .frontPic = gMonFrontPic_Meditite, + .frontPicFemale = gMonFrontPic_MedititeF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Meditite, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Meditite, 48, 48), - BACK_PIC_FEMALE(Meditite, 48, 48), + .backPic = gMonBackPic_Meditite, + .backPicFemale = gMonBackPic_MedititeF, + .backPicSize = MON_COORDS_SIZE(48, 48), + .backPicSizeFemale = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Meditite), - ICON(Meditite, 0), - .footprint = gMonFootprint_Meditite, - LEARNSETS(Meditite), + .palette = gMonPalette_Meditite, + .shinyPalette = gMonShinyPalette_Meditite, + .iconSprite = gMonIcon_Meditite, + .iconPalIndex = 0, + FOOTPRINT(Meditite) + .levelUpLearnset = sMedititeLevelUpLearnset, + .teachableLearnset = sMedititeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_MEDICHAM}), }, -#define MEDICHAM_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, \ - .catchRate = 90, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Medicham"), \ - .natDexNum = NATIONAL_DEX_MEDICHAM, \ - .categoryName = _("Meditate"), \ - .height = 13, \ - .weight = 315, \ - .pokemonScale = 298, \ - .pokemonOffset = 5, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Medicham, \ - LEARNSETS(Medicham), \ - .formSpeciesIdTable = sMedichamFormSpeciesIdTable, \ - .formChangeTable = sMedichamFormChangeTable - [SPECIES_MEDICHAM] = { - MEDICHAM_MISC_INFO, .baseHP = 60, .baseAttack = 60, .baseDefense = 75, .baseSpeed = 80, .baseSpAttack = 60, .baseSpDefense = 75, - .expYield = 144, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Medicham"), .cryId = CRY_MEDICHAM, + .natDexNum = NATIONAL_DEX_MEDICHAM, + .categoryName = _("Meditate"), + .height = 13, + .weight = 315, .description = COMPOUND_STRING( "Through crushingly harsh yoga training, it\n" "gained the power to foretell its foe's\n" "actions. It battles with elegant, dance-\n" "like movement."), - FRONT_PIC(Medicham, 40, 64), - FRONT_PIC_FEMALE(Medicham, 40, 64), + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Medicham, + .frontPicFemale = gMonFrontPic_MedichamF, + .frontPicSize = MON_COORDS_SIZE(40, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Medicham, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Medicham, 56, 64), - BACK_PIC_FEMALE(Medicham, 56, 64), + .backPic = gMonBackPic_Medicham, + .backPicFemale = gMonBackPic_MedichamF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Medicham), - ICON(Medicham, 0), + .palette = gMonPalette_Medicham, + .shinyPalette = gMonShinyPalette_Medicham, + .iconSprite = gMonIcon_Medicham, + .iconPalIndex = 0, + FOOTPRINT(Medicham) + .levelUpLearnset = sMedichamLevelUpLearnset, + .teachableLearnset = sMedichamTeachableLearnset, + .formSpeciesIdTable = sMedichamFormSpeciesIdTable, + .formChangeTable = sMedichamFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MEDICHAM_MEGA] = { - MEDICHAM_MISC_INFO, .baseHP = 60, .baseAttack = 100, .baseDefense = 85, .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), + .catchRate = 90, .expYield = 179, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_PURE_POWER, ABILITY_PURE_POWER }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Medicham"), .cryId = CRY_MEDICHAM_MEGA, + .natDexNum = NATIONAL_DEX_MEDICHAM, + .categoryName = _("Meditate"), + .height = 13, + .weight = 315, .description = COMPOUND_STRING( "It uses its amped-up willpower to create\n" "additional arms for itself. The more it has\n" "trained its spirit, the more realistic and\n" "dexterous these self-created arms become."), - FRONT_PIC(MedichamMega, 64, 64), + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MedichamMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MedichamMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MedichamMega, 64, 64), + .backPic = gMonBackPic_MedichamMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(MedichamMega), - ICON(MedichamMega, 0), + .palette = gMonPalette_MedichamMega, + .shinyPalette = gMonShinyPalette_MedichamMega, + .iconSprite = gMonIcon_MedichamMega, + .iconPalIndex = 0, + FOOTPRINT(Medicham) .isMegaEvolution = TRUE, + .levelUpLearnset = sMedichamLevelUpLearnset, + .teachableLearnset = sMedichamTeachableLearnset, + .formSpeciesIdTable = sMedichamFormSpeciesIdTable, + .formChangeTable = sMedichamFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MEDITITE @@ -3364,15 +4052,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 104, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Electrike"), @@ -3390,50 +4078,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Electrike, 48, 40), + .frontPic = gMonFrontPic_Electrike, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Electrike, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Electrike, 56, 40), + .backPic = gMonBackPic_Electrike, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Electrike), - ICON(Electrike, 1), - .footprint = gMonFootprint_Electrike, - LEARNSETS(Electrike), + .palette = gMonPalette_Electrike, + .shinyPalette = gMonShinyPalette_Electrike, + .iconSprite = gMonIcon_Electrike, + .iconPalIndex = 1, + FOOTPRINT(Electrike) + .levelUpLearnset = sElectrikeLevelUpLearnset, + .teachableLearnset = sElectrikeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_MANECTRIC}), }, -#define MANECTRIC_MISC_INFO \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 45, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Manectric"), \ - .natDexNum = NATIONAL_DEX_MANECTRIC, \ - .categoryName = _("Discharge"), \ - .footprint = gMonFootprint_Manectric, \ - LEARNSETS(Manectric), \ - .formSpeciesIdTable = sManectricFormSpeciesIdTable, \ - .formChangeTable = sManectricFormChangeTable - [SPECIES_MANECTRIC] = { - MANECTRIC_MISC_INFO, .baseHP = 70, .baseAttack = 75, .baseDefense = 60, .baseSpeed = 105, .baseSpAttack = 105, .baseSpDefense = 60, - .expYield = 166, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 168, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Manectric"), .cryId = CRY_MANECTRIC, + .natDexNum = NATIONAL_DEX_MANECTRIC, + .categoryName = _("Discharge"), .height = 15, .weight = 402, .description = COMPOUND_STRING( @@ -3445,30 +4131,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Manectric, 56, 64), + .frontPic = gMonFrontPic_Manectric, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Manectric, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Manectric, 56, 64), + .backPic = gMonBackPic_Manectric, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Manectric), - ICON(Manectric, 0), + .palette = gMonPalette_Manectric, + .shinyPalette = gMonShinyPalette_Manectric, + .iconSprite = gMonIcon_Manectric, + .iconPalIndex = 0, + FOOTPRINT(Manectric) + .levelUpLearnset = sManectricLevelUpLearnset, + .teachableLearnset = sManectricTeachableLearnset, + .formSpeciesIdTable = sManectricFormSpeciesIdTable, + .formChangeTable = sManectricFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MANECTRIC_MEGA] = { - MANECTRIC_MISC_INFO, .baseHP = 70, .baseAttack = 75, .baseDefense = 80, .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, .expYield = 201, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_INTIMIDATE, ABILITY_INTIMIDATE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Manectric"), .cryId = CRY_MANECTRIC_MEGA, + .natDexNum = NATIONAL_DEX_MANECTRIC, + .categoryName = _("Discharge"), .height = 18, .weight = 440, .description = COMPOUND_STRING( @@ -3479,16 +4185,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(ManectricMega, 64, 64), + .frontPic = gMonFrontPic_ManectricMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_ManectricMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ManectricMega, 64, 64), + .backPic = gMonBackPic_ManectricMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(ManectricMega), - ICON(ManectricMega, 0), + .palette = gMonPalette_ManectricMega, + .shinyPalette = gMonShinyPalette_ManectricMega, + .iconSprite = gMonIcon_ManectricMega, + .iconPalIndex = 0, + FOOTPRINT(Manectric) .isMegaEvolution = TRUE, + .levelUpLearnset = sManectricLevelUpLearnset, + .teachableLearnset = sManectricTeachableLearnset, + .formSpeciesIdTable = sManectricFormSpeciesIdTable, + .formChangeTable = sManectricFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ELECTRIKE @@ -3502,15 +4217,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Plusle"), @@ -3528,17 +4244,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Plusle, 40, 48), + .frontPic = gMonFrontPic_Plusle, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Plusle, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Plusle, 56, 64), + .backPic = gMonBackPic_Plusle, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Plusle), - ICON(Plusle, 0), - .footprint = gMonFootprint_Plusle, - LEARNSETS(Plusle), + .palette = gMonPalette_Plusle, + .shinyPalette = gMonShinyPalette_Plusle, + .iconSprite = gMonIcon_Plusle, + .iconPalIndex = 0, + FOOTPRINT(Plusle) + .levelUpLearnset = sPlusleLevelUpLearnset, + .teachableLearnset = sPlusleTeachableLearnset, }, #endif //P_FAMILY_PLUSLE @@ -3551,15 +4272,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Minun"), @@ -3577,17 +4299,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Minun, 40, 48), + .frontPic = gMonFrontPic_Minun, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Minun, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Minun, 48, 64), + .backPic = gMonBackPic_Minun, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Minun), - ICON(Minun, 0), - .footprint = gMonFootprint_Minun, - LEARNSETS(Minun), + .palette = gMonPalette_Minun, + .shinyPalette = gMonShinyPalette_Minun, + .iconSprite = gMonIcon_Minun, + .iconPalIndex = 0, + FOOTPRINT(Minun) + .levelUpLearnset = sMinunLevelUpLearnset, + .teachableLearnset = sMinunTeachableLearnset, }, #endif //P_FAMILY_MINUN @@ -3596,25 +4323,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = { .baseHP = 65, .baseAttack = 73, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 75 : 55, .baseSpeed = 85, .baseSpAttack = 47, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .types = MON_TYPES(TYPE_BUG), .catchRate = 150, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 140, + #else + .expYield = 146, + #endif .evYield_Speed = 1, .itemRare = ITEM_BRIGHT_POWDER, .genderRatio = MON_MALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ILLUMINATE, ABILITY_SWARM, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Volbeat"), @@ -3632,42 +4360,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Volbeat, 48, 56), + .frontPic = gMonFrontPic_Volbeat, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Volbeat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Volbeat, 48, 64), + .backPic = gMonBackPic_Volbeat, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Volbeat), - ICON(Volbeat, 0), - .footprint = gMonFootprint_Volbeat, - LEARNSETS(Volbeat), + .palette = gMonPalette_Volbeat, + .shinyPalette = gMonShinyPalette_Volbeat, + .iconSprite = gMonIcon_Volbeat, + .iconPalIndex = 0, + FOOTPRINT(Volbeat) + .levelUpLearnset = sVolbeatLevelUpLearnset, + .teachableLearnset = sVolbeatTeachableLearnset, }, [SPECIES_ILLUMISE] = { .baseHP = 65, .baseAttack = 47, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 75 : 55, .baseSpeed = 85, .baseSpAttack = 73, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .types = MON_TYPES(TYPE_BUG), .catchRate = 150, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 140, + #else + .expYield = 146, + #endif .evYield_Speed = 1, .itemRare = ITEM_BRIGHT_POWDER, .genderRatio = MON_FEMALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OBLIVIOUS, ABILITY_TINTED_LENS, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Illumise"), @@ -3685,17 +4419,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Illumise, 40, 48), + .frontPic = gMonFrontPic_Illumise, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Illumise, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Illumise, 48, 56), + .backPic = gMonBackPic_Illumise, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Illumise), - ICON(Illumise, 2), - .footprint = gMonFootprint_Illumise, - LEARNSETS(Illumise), + .palette = gMonPalette_Illumise, + .shinyPalette = gMonShinyPalette_Illumise, + .iconSprite = gMonIcon_Illumise, + .iconPalIndex = 2, + FOOTPRINT(Illumise) + .levelUpLearnset = sIllumiseLevelUpLearnset, + .teachableLearnset = sIllumiseTeachableLearnset, }, #endif //P_FAMILY_VOLBEAT_ILLUMISE @@ -3709,16 +4448,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 68, .evYield_SpAttack = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3737,17 +4476,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Budew, 32, 40), + .frontPic = gMonFrontPic_Budew, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Budew, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Budew, 40, 56), + .backPic = gMonBackPic_Budew, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Budew), - ICON(Budew, 1), - .footprint = gMonFootprint_Budew, - LEARNSETS(Budew), + .palette = gMonPalette_Budew, + .shinyPalette = gMonShinyPalette_Budew, + .iconSprite = gMonIcon_Budew, + .iconPalIndex = 1, + FOOTPRINT(Budew) + .levelUpLearnset = sBudewLevelUpLearnset, + .teachableLearnset = sBudewTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_ROSELIA}), }, #endif //P_GEN_4_CROSS_EVOS @@ -3760,16 +4504,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 150, - .expYield = 140, - .evYield_SpAttack = 2, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 140 : 152, + .evYield_SpAttack = (P_UPDATED_EVS >= GEN_4) ? 2 : 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3788,20 +4532,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roselia, 56, 48), - FRONT_PIC_FEMALE(Roselia, 56, 48), + .frontPic = gMonFrontPic_Roselia, + .frontPicFemale = gMonFrontPic_RoseliaF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Roselia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Roselia, 64, 56), - BACK_PIC_FEMALE(Roselia, 64, 56), + .backPic = gMonBackPic_Roselia, + .backPicFemale = gMonBackPic_RoseliaF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Roselia), - ICON(Roselia, 4), - .footprint = gMonFootprint_Roselia, - LEARNSETS(Roselia), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_ROSERADE}), + .palette = gMonPalette_Roselia, + .shinyPalette = gMonShinyPalette_Roselia, + .iconSprite = gMonIcon_Roselia, + .iconPalIndex = 4, + FOOTPRINT(Roselia) + .levelUpLearnset = sRoseliaLevelUpLearnset, + .teachableLearnset = sRoseliaTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_ROSERADE}), }, #if P_GEN_4_CROSS_EVOS @@ -3813,16 +4564,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 125, .baseSpDefense = 105, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 258, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 232, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 227, + #else + .expYield = 204, + #endif .evYield_SpAttack = 3, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3841,19 +4600,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roserade, 48, 56), - FRONT_PIC_FEMALE(Roserade, 48, 56), + .frontPic = gMonFrontPic_Roserade, + .frontPicFemale = gMonFrontPic_RoseradeF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Roserade, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Roserade, 64, 56), - BACK_PIC_FEMALE(Roserade, 64, 56), + .backPic = gMonBackPic_Roserade, + .backPicFemale = gMonBackPic_RoseradeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Roserade), - ICON(Roserade, 0), - .footprint = gMonFootprint_Roserade, - LEARNSETS(Roserade), + .palette = gMonPalette_Roserade, + .shinyPalette = gMonShinyPalette_Roserade, + .iconSprite = gMonIcon_Roserade, + .iconPalIndex = 0, + FOOTPRINT(Roserade) + .levelUpLearnset = sRoseradeLevelUpLearnset, + .teachableLearnset = sRoseradeTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ROSELIA @@ -3867,9 +4633,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 43, .baseSpDefense = 53, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 225, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 75, .evYield_HP = 1, .itemCommon = ITEM_ORAN_BERRY, .itemRare = ITEM_SITRUS_BERRY, @@ -3877,7 +4643,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Gulpin"), @@ -3895,19 +4661,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gulpin, 40, 48), - FRONT_PIC_FEMALE(Gulpin, 40, 48), + .frontPic = gMonFrontPic_Gulpin, + .frontPicFemale = gMonFrontPic_GulpinF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Gulpin, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gulpin, 56, 48), - BACK_PIC_FEMALE(Gulpin, 56, 48), + .backPic = gMonBackPic_Gulpin, + .backPicFemale = gMonBackPic_GulpinF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Gulpin), - ICON(Gulpin, 1), - .footprint = gMonFootprint_Gulpin, - LEARNSETS(Gulpin), + .palette = gMonPalette_Gulpin, + .shinyPalette = gMonShinyPalette_Gulpin, + .iconSprite = gMonIcon_Gulpin, + .iconPalIndex = 1, + FOOTPRINT(Gulpin) + .levelUpLearnset = sGulpinLevelUpLearnset, + .teachableLearnset = sGulpinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_SWALOT}), }, @@ -3919,9 +4692,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 73, .baseSpDefense = 83, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 75, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 168, .evYield_HP = 2, .itemCommon = ITEM_ORAN_BERRY, .itemRare = ITEM_SITRUS_BERRY, @@ -3929,7 +4702,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Swalot"), @@ -3947,19 +4720,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 345, .trainerOffset = 3, - FRONT_PIC(Swalot, 56, 56), - FRONT_PIC_FEMALE(Swalot, 56, 56), + .frontPic = gMonFrontPic_Swalot, + .frontPicFemale = gMonFrontPic_SwalotF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Swalot, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Swalot, 64, 64), - BACK_PIC_FEMALE(Swalot, 64, 64), + .backPic = gMonBackPic_Swalot, + .backPicFemale = gMonBackPic_SwalotF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Swalot), - ICON(Swalot, 2), - .footprint = gMonFootprint_Swalot, - LEARNSETS(Swalot), + .palette = gMonPalette_Swalot, + .shinyPalette = gMonShinyPalette_Swalot, + .iconSprite = gMonIcon_Swalot, + .iconPalIndex = 2, + FOOTPRINT(Swalot) + .levelUpLearnset = sSwalotLevelUpLearnset, + .teachableLearnset = sSwalotTeachableLearnset, }, #endif //P_FAMILY_GULPIN @@ -3972,16 +4752,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), .catchRate = 225, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 88, .evYield_Attack = 1, .itemRare = ITEM_DEEP_SEA_TOOTH, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Carvanha"), @@ -3999,51 +4779,49 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carvanha, 48, 56), + .frontPic = gMonFrontPic_Carvanha, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Carvanha, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Carvanha, 64, 48), + .backPic = gMonBackPic_Carvanha, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Carvanha), - ICON(Carvanha, 0), - .footprint = gMonFootprint_Carvanha, - LEARNSETS(Carvanha), + .palette = gMonPalette_Carvanha, + .shinyPalette = gMonShinyPalette_Carvanha, + .iconSprite = gMonIcon_Carvanha, + .iconPalIndex = 0, + FOOTPRINT(Carvanha) + .levelUpLearnset = sCarvanhaLevelUpLearnset, + .teachableLearnset = sCarvanhaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHARPEDO}), }, -#define SHARPEDO_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DARK }, \ - .catchRate = 60, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_DEEP_SEA_TOOTH, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Sharpedo"), \ - .natDexNum = NATIONAL_DEX_SHARPEDO, \ - .categoryName = _("Brutal"), \ - .footprint = gMonFootprint_Sharpedo, \ - LEARNSETS(Sharpedo), \ - .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, \ - .formChangeTable = sSharpedoFormChangeTable - [SPECIES_SHARPEDO] = { - SHARPEDO_MISC_INFO, .baseHP = 70, .baseAttack = 120, .baseDefense = 40, .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 40, - .expYield = 161, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 175, + .evYield_Attack = 2, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sharpedo"), .cryId = CRY_SHARPEDO, + .natDexNum = NATIONAL_DEX_SHARPEDO, + .categoryName = _("Brutal"), .height = 18, .weight = 888, .description = COMPOUND_STRING( @@ -4055,30 +4833,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 317, .trainerOffset = 3, - FRONT_PIC(Sharpedo, 64, 64), + .frontPic = gMonFrontPic_Sharpedo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sharpedo, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, - BACK_PIC(Sharpedo, 64, 64), + .backPic = gMonBackPic_Sharpedo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Sharpedo), - ICON(Sharpedo, 0), + .palette = gMonPalette_Sharpedo, + .shinyPalette = gMonShinyPalette_Sharpedo, + .iconSprite = gMonIcon_Sharpedo, + .iconPalIndex = 0, + FOOTPRINT(Sharpedo) + .levelUpLearnset = sSharpedoLevelUpLearnset, + .teachableLearnset = sSharpedoTeachableLearnset, + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, + .formChangeTable = sSharpedoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SHARPEDO_MEGA] = { - SHARPEDO_MISC_INFO, .baseHP = 70, .baseAttack = 140, .baseDefense = 70, .baseSpeed = 105, .baseSpAttack = 110, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 60, .expYield = 196, + .evYield_Attack = 2, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_STRONG_JAW, ABILITY_STRONG_JAW, ABILITY_STRONG_JAW }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sharpedo"), .cryId = CRY_SHARPEDO_MEGA, + .natDexNum = NATIONAL_DEX_SHARPEDO, + .categoryName = _("Brutal"), .height = 25, .weight = 1303, .description = COMPOUND_STRING( @@ -4090,17 +4889,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 317, .trainerOffset = 3, - FRONT_PIC(SharpedoMega, 64, 64), + .frontPic = gMonFrontPic_SharpedoMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SharpedoMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 1, - BACK_PIC(SharpedoMega, 64, 64), + .backPic = gMonBackPic_SharpedoMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(SharpedoMega), - ICON(SharpedoMega, 0), + .palette = gMonPalette_SharpedoMega, + .shinyPalette = gMonShinyPalette_SharpedoMega, + .iconSprite = gMonIcon_SharpedoMega, + .iconPalIndex = 0, + FOOTPRINT(Sharpedo) .isMegaEvolution = TRUE, + .levelUpLearnset = sSharpedoLevelUpLearnset, + .teachableLearnset = sSharpedoTeachableLearnset, + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, + .formChangeTable = sSharpedoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_CARVANHA @@ -4114,15 +4922,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 125, - .expYield = 80, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 80 : 137, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), .abilities = { ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wailmer"), @@ -4140,17 +4948,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 493, .trainerOffset = 0, - FRONT_PIC(Wailmer, 64, 48), + .frontPic = gMonFrontPic_Wailmer, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wailmer, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Wailmer, 64, 48), + .backPic = gMonBackPic_Wailmer, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Wailmer), - ICON(Wailmer, 2), - .footprint = gMonFootprint_Wailmer, - LEARNSETS(Wailmer), + .palette = gMonPalette_Wailmer, + .shinyPalette = gMonShinyPalette_Wailmer, + .iconSprite = gMonIcon_Wailmer, + .iconPalIndex = 2, + FOOTPRINT(Wailmer) + .levelUpLearnset = sWailmerLevelUpLearnset, + .teachableLearnset = sWailmerTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_WAILORD}), }, @@ -4162,15 +4975,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 90, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 206, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), .abilities = { ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wailord"), @@ -4188,18 +5001,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 1352, .trainerOffset = 18, - FRONT_PIC(Wailord, 64, 56), + .frontPic = gMonFrontPic_Wailord, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Wailord, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .frontAnimDelay = 10, - BACK_PIC(Wailord, 64, 40), + .backPic = gMonBackPic_Wailord, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Wailord), - ICON(Wailord, 0), - .footprint = gMonFootprint_Wailord, - LEARNSETS(Wailord), + .palette = gMonPalette_Wailord, + .shinyPalette = gMonShinyPalette_Wailord, + .iconSprite = gMonIcon_Wailord, + .iconPalIndex = 0, + FOOTPRINT(Wailord) + .levelUpLearnset = sWailordLevelUpLearnset, + .teachableLearnset = sWailordTeachableLearnset, }, #endif //P_FAMILY_WAILMER @@ -4212,15 +5030,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), .catchRate = 255, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 88, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SIMPLE, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Numel"), @@ -4238,53 +5056,53 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Numel, 40, 48), - FRONT_PIC_FEMALE(Numel, 40, 48), + .frontPic = gMonFrontPic_Numel, + .frontPicFemale = gMonFrontPic_NumelF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Numel, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Numel, 56, 56), - BACK_PIC_FEMALE(Numel, 56, 56), + .backPic = gMonBackPic_Numel, + .backPicFemale = gMonBackPic_NumelF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Numel), - ICON(Numel, 1), - .footprint = gMonFootprint_Numel, - LEARNSETS(Numel), + .palette = gMonPalette_Numel, + .shinyPalette = gMonShinyPalette_Numel, + .iconSprite = gMonIcon_Numel, + .iconPalIndex = 1, + FOOTPRINT(Numel) + .levelUpLearnset = sNumelLevelUpLearnset, + .teachableLearnset = sNumelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_CAMERUPT}), }, -#define CAMERUPT_MISC_INFO \ - .types = { TYPE_FIRE, TYPE_GROUND }, \ - .catchRate = 150, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Camerupt"), \ - .natDexNum = NATIONAL_DEX_CAMERUPT, \ - .categoryName = _("Eruption"), \ - .footprint = gMonFootprint_Camerupt, \ - LEARNSETS(Camerupt), \ - .formSpeciesIdTable = sCameruptFormSpeciesIdTable, \ - .formChangeTable = sCameruptFormChangeTable - [SPECIES_CAMERUPT] = { - CAMERUPT_MISC_INFO, .baseHP = 70, .baseAttack = 100, .baseDefense = 70, .baseSpeed = 40, .baseSpAttack = 105, .baseSpDefense = 75, - .expYield = 161, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), + .catchRate = 150, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 175, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_SOLID_ROCK, ABILITY_ANGER_POINT }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Camerupt"), .cryId = CRY_CAMERUPT, + .natDexNum = NATIONAL_DEX_CAMERUPT, + .categoryName = _("Eruption"), .height = 19, .weight = 2200, .description = COMPOUND_STRING( @@ -4296,32 +5114,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 345, .trainerOffset = 6, - FRONT_PIC(Camerupt, 64, 56), - FRONT_PIC_FEMALE(Camerupt, 64, 56), + .frontPic = gMonFrontPic_Camerupt, + .frontPicFemale = gMonFrontPic_CameruptF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Camerupt, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Camerupt, 64, 40), - BACK_PIC_FEMALE(Camerupt, 64, 40), + .backPic = gMonBackPic_Camerupt, + .backPicFemale = gMonBackPic_CameruptF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Camerupt), - ICON(Camerupt, 0), + .palette = gMonPalette_Camerupt, + .shinyPalette = gMonShinyPalette_Camerupt, + .iconSprite = gMonIcon_Camerupt, + .iconPalIndex = 0, + FOOTPRINT(Camerupt) + .levelUpLearnset = sCameruptLevelUpLearnset, + .teachableLearnset = sCameruptTeachableLearnset, + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, + .formChangeTable = sCameruptFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_CAMERUPT_MEGA] = { - CAMERUPT_MISC_INFO, .baseHP = 70, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 20, .baseSpAttack = 145, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), + .catchRate = 150, .expYield = 196, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Camerupt"), .cryId = CRY_CAMERUPT_MEGA, + .natDexNum = NATIONAL_DEX_CAMERUPT, + .categoryName = _("Eruption"), .height = 25, .weight = 3205, .description = COMPOUND_STRING( @@ -4333,16 +5174,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 345, .trainerOffset = 6, - FRONT_PIC(CameruptMega, 64, 64), + .frontPic = gMonFrontPic_CameruptMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_CameruptMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CameruptMega, 64, 64), + .backPic = gMonBackPic_CameruptMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CameruptMega), - ICON(CameruptMega, 0), + .palette = gMonPalette_CameruptMega, + .shinyPalette = gMonShinyPalette_CameruptMega, + .iconSprite = gMonIcon_CameruptMega, + .iconPalIndex = 0, + FOOTPRINT(Camerupt) .isMegaEvolution = TRUE, + .levelUpLearnset = sCameruptLevelUpLearnset, + .teachableLearnset = sCameruptTeachableLearnset, + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, + .formChangeTable = sCameruptFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_NUMEL @@ -4356,16 +5206,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 20, .baseSpAttack = 85, .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 161, .evYield_Defense = 2, .itemRare = ITEM_CHARCOAL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_WHITE_SMOKE, ABILITY_DROUGHT, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Torkoal"), @@ -4383,17 +5233,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torkoal, 64, 64), + .frontPic = gMonFrontPic_Torkoal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Torkoal, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Torkoal, 64, 48), + .backPic = gMonBackPic_Torkoal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Torkoal), - ICON(Torkoal, 2), - .footprint = gMonFootprint_Torkoal, - LEARNSETS(Torkoal), + .palette = gMonPalette_Torkoal, + .shinyPalette = gMonShinyPalette_Torkoal, + .iconSprite = gMonIcon_Torkoal, + .iconPalIndex = 2, + FOOTPRINT(Torkoal) + .levelUpLearnset = sTorkoalLevelUpLearnset, + .teachableLearnset = sTorkoalTeachableLearnset, }, #endif //P_FAMILY_TORKOAL @@ -4406,15 +5261,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 89, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Spoink"), @@ -4432,17 +5287,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spoink, 32, 48), + .frontPic = gMonFrontPic_Spoink, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Spoink, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, - BACK_PIC(Spoink, 40, 64), + .backPic = gMonBackPic_Spoink, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Spoink), - ICON(Spoink, 0), - .footprint = gMonFootprint_Spoink, - LEARNSETS(Spoink), + .palette = gMonPalette_Spoink, + .shinyPalette = gMonShinyPalette_Spoink, + .iconSprite = gMonIcon_Spoink, + .iconPalIndex = 0, + FOOTPRINT(Spoink) + .levelUpLearnset = sSpoinkLevelUpLearnset, + .teachableLearnset = sSpoinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GRUMPIG}), }, @@ -4454,15 +5314,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 60, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 164, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Grumpig"), @@ -4480,18 +5340,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grumpig, 56, 64), + .frontPic = gMonFrontPic_Grumpig, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Grumpig, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, - BACK_PIC(Grumpig, 64, 64), + .backPic = gMonBackPic_Grumpig, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Grumpig), - ICON(Grumpig, 2), - .footprint = gMonFootprint_Grumpig, - LEARNSETS(Grumpig), + .palette = gMonPalette_Grumpig, + .shinyPalette = gMonShinyPalette_Grumpig, + .iconSprite = gMonIcon_Grumpig, + .iconPalIndex = 2, + FOOTPRINT(Grumpig) + .levelUpLearnset = sGrumpigLevelUpLearnset, + .teachableLearnset = sGrumpigTeachableLearnset, }, #endif //P_FAMILY_SPOINK @@ -4504,15 +5369,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 126, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 126 : 85, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OWN_TEMPO, ABILITY_TANGLED_FEET, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -4531,17 +5396,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spinda, 48, 64), + .frontPic = gMonFrontPic_Spinda, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Spinda, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Spinda, 56, 56), + .backPic = gMonBackPic_Spinda, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Spinda), - ICON(Spinda, 1), - .footprint = gMonFootprint_Spinda, - LEARNSETS(Spinda), + .palette = gMonPalette_Spinda, + .shinyPalette = gMonShinyPalette_Spinda, + .iconSprite = gMonIcon_Spinda, + .iconPalIndex = 1, + FOOTPRINT(Spinda) + .levelUpLearnset = sSpindaLevelUpLearnset, + .teachableLearnset = sSpindaTeachableLearnset, }, #endif //P_FAMILY_SPINDA @@ -4554,20 +5424,20 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 10, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 73, .evYield_Attack = 1, .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Trapinch"), @@ -4585,17 +5455,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trapinch, 40, 40), + .frontPic = gMonFrontPic_Trapinch, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Trapinch, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Trapinch, 48, 48), + .backPic = gMonBackPic_Trapinch, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Trapinch), - ICON(Trapinch, 0), - .footprint = gMonFootprint_Trapinch, - LEARNSETS(Trapinch), + .palette = gMonPalette_Trapinch, + .shinyPalette = gMonShinyPalette_Trapinch, + .iconSprite = gMonIcon_Trapinch, + .iconPalIndex = 0, + FOOTPRINT(Trapinch) + .levelUpLearnset = sTrapinchLevelUpLearnset, + .teachableLearnset = sTrapinchTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VIBRAVA}), }, @@ -4607,20 +5482,20 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DRAGON), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 126, .evYield_Attack = 1, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Vibrava"), @@ -4638,17 +5513,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vibrava, 64, 48), + .frontPic = gMonFrontPic_Vibrava, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Vibrava, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Vibrava, 64, 40), + .backPic = gMonBackPic_Vibrava, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Vibrava), - ICON(Vibrava, 1), - .footprint = gMonFootprint_Vibrava, - LEARNSETS(Vibrava), + .palette = gMonPalette_Vibrava, + .shinyPalette = gMonShinyPalette_Vibrava, + .iconSprite = gMonIcon_Vibrava, + .iconPalIndex = 1, + FOOTPRINT(Vibrava) + .levelUpLearnset = sVibravaLevelUpLearnset, + .teachableLearnset = sVibravaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_FLYGON}), }, @@ -4660,20 +5540,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DRAGON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 260, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 234, + #else + .expYield = 197, + #endif .evYield_Attack = 1, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Flygon"), @@ -4691,18 +5577,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(Flygon, 64, 64), + .frontPic = gMonFrontPic_Flygon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Flygon, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 7, - BACK_PIC(Flygon, 64, 64), + .backPic = gMonBackPic_Flygon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Flygon), - ICON(Flygon, 1), - .footprint = gMonFootprint_Flygon, - LEARNSETS(Flygon), + .palette = gMonPalette_Flygon, + .shinyPalette = gMonShinyPalette_Flygon, + .iconSprite = gMonIcon_Flygon, + .iconPalIndex = 1, + FOOTPRINT(Flygon) + .levelUpLearnset = sFlygonLevelUpLearnset, + .teachableLearnset = sFlygonTeachableLearnset, }, #endif //P_FAMILY_TRAPINCH @@ -4715,15 +5606,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 85, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 97, .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cacnea"), @@ -4741,17 +5633,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cacnea, 56, 40), + .frontPic = gMonFrontPic_Cacnea, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Cacnea, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Cacnea, 64, 40), + .backPic = gMonBackPic_Cacnea, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Cacnea), - ICON(Cacnea, 1), - .footprint = gMonFootprint_Cacnea, - LEARNSETS(Cacnea), + .palette = gMonPalette_Cacnea, + .shinyPalette = gMonShinyPalette_Cacnea, + .iconSprite = gMonIcon_Cacnea, + .iconPalIndex = 1, + FOOTPRINT(Cacnea) + .levelUpLearnset = sCacneaLevelUpLearnset, + .teachableLearnset = sCacneaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_CACTURNE}), }, @@ -4763,16 +5660,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 60, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 177, .evYield_Attack = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cacturne"), @@ -4790,18 +5688,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cacturne, 64, 64), - FRONT_PIC_FEMALE(Cacturne, 64, 64), + .frontPic = gMonFrontPic_Cacturne, + .frontPicFemale = gMonFrontPic_CacturneF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cacturne, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cacturne, 64, 64), + .backPic = gMonBackPic_Cacturne, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Cacturne), - ICON(Cacturne, 1), - .footprint = gMonFootprint_Cacturne, - LEARNSETS(Cacturne), + .palette = gMonPalette_Cacturne, + .shinyPalette = gMonShinyPalette_Cacturne, + .iconSprite = gMonIcon_Cacturne, + .iconPalIndex = 1, + FOOTPRINT(Cacturne) + .levelUpLearnset = sCacturneLevelUpLearnset, + .teachableLearnset = sCacturneTeachableLearnset, }, #endif //P_FAMILY_CACNEA @@ -4814,15 +5718,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swablu"), @@ -4840,50 +5744,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swablu, 48, 40), + .frontPic = gMonFrontPic_Swablu, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Swablu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Swablu, 64, 48), + .backPic = gMonBackPic_Swablu, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Swablu), - ICON(Swablu, 0), - .footprint = gMonFootprint_Swablu, - LEARNSETS(Swablu), + .palette = gMonPalette_Swablu, + .shinyPalette = gMonShinyPalette_Swablu, + .iconSprite = gMonIcon_Swablu, + .iconPalIndex = 0, + FOOTPRINT(Swablu) + .levelUpLearnset = sSwabluLevelUpLearnset, + .teachableLearnset = sSwabluTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ALTARIA}), }, -#define ALTARIA_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpDefense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Altaria"), \ - .natDexNum = NATIONAL_DEX_ALTARIA, \ - .categoryName = _("Humming"), \ - .footprint = gMonFootprint_Altaria, \ - LEARNSETS(Altaria), \ - .formSpeciesIdTable = sAltariaFormSpeciesIdTable, \ - .formChangeTable = sAltariaFormChangeTable - [SPECIES_ALTARIA] = { - ALTARIA_MISC_INFO, .baseHP = 75, .baseAttack = 70, .baseDefense = 90, .baseSpeed = 80, .baseSpAttack = 70, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FLYING }, - .expYield = 172, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 188, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Altaria"), .cryId = CRY_ALTARIA, + .natDexNum = NATIONAL_DEX_ALTARIA, + .categoryName = _("Humming"), .height = 11, .weight = 206, .description = COMPOUND_STRING( @@ -4895,31 +5797,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Altaria, 64, 64), + .frontPic = gMonFrontPic_Altaria, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Altaria, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Altaria, 64, 48), + .backPic = gMonBackPic_Altaria, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Altaria), - ICON(Altaria, 0), + .palette = gMonPalette_Altaria, + .shinyPalette = gMonShinyPalette_Altaria, + .iconSprite = gMonIcon_Altaria, + .iconPalIndex = 0, + FOOTPRINT(Altaria) + .levelUpLearnset = sAltariaLevelUpLearnset, + .teachableLearnset = sAltariaTeachableLearnset, + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, + .formChangeTable = sAltariaFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ALTARIA_MEGA] = { - ALTARIA_MISC_INFO, .baseHP = 75, .baseAttack = 110, .baseDefense = 110, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FAIRY), + .catchRate = 45, .expYield = 207, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Altaria"), .cryId = CRY_ALTARIA_MEGA, + .natDexNum = NATIONAL_DEX_ALTARIA, + .categoryName = _("Humming"), .height = 15, .weight = 206, .description = COMPOUND_STRING( @@ -4931,17 +5852,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AltariaMega, 64, 64), + .frontPic = gMonFrontPic_AltariaMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AltariaMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(AltariaMega, 64, 48), + .backPic = gMonBackPic_AltariaMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(AltariaMega), - ICON(AltariaMega, 0), + .palette = gMonPalette_AltariaMega, + .shinyPalette = gMonShinyPalette_AltariaMega, + .iconSprite = gMonIcon_AltariaMega, + .iconPalIndex = 0, + FOOTPRINT(Altaria) .isMegaEvolution = TRUE, + .levelUpLearnset = sAltariaLevelUpLearnset, + .teachableLearnset = sAltariaTeachableLearnset, + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, + .formChangeTable = sAltariaFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SWABLU @@ -4955,16 +5885,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 165, .evYield_Attack = 2, .itemRare = ITEM_QUICK_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_IMMUNITY, ABILITY_NONE, ABILITY_TOXIC_BOOST }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -4983,17 +5913,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Zangoose, 56, 56), + .frontPic = gMonFrontPic_Zangoose, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Zangoose, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Zangoose, 64, 56), + .backPic = gMonBackPic_Zangoose, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Zangoose), - ICON(Zangoose, 0), - .footprint = gMonFootprint_Zangoose, - LEARNSETS(Zangoose), + .palette = gMonPalette_Zangoose, + .shinyPalette = gMonShinyPalette_Zangoose, + .iconSprite = gMonIcon_Zangoose, + .iconPalIndex = 0, + FOOTPRINT(Zangoose) + .levelUpLearnset = sZangooseLevelUpLearnset, + .teachableLearnset = sZangooseTeachableLearnset, }, #endif //P_FAMILY_ZANGOOSE @@ -5006,16 +5941,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 90, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 165, .evYield_Attack = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLACK, .noFlip = TRUE, @@ -5034,17 +5970,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seviper, 64, 56), + .frontPic = gMonFrontPic_Seviper, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Seviper, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Seviper, 64, 64), + .backPic = gMonBackPic_Seviper, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Seviper), - ICON(Seviper, 2), - .footprint = gMonFootprint_Seviper, - LEARNSETS(Seviper), + .palette = gMonPalette_Seviper, + .shinyPalette = gMonShinyPalette_Seviper, + .iconSprite = gMonIcon_Seviper, + .iconPalIndex = 2, + FOOTPRINT(Seviper) + .levelUpLearnset = sSeviperLevelUpLearnset, + .teachableLearnset = sSeviperTeachableLearnset, }, #endif //P_FAMILY_SEVIPER @@ -5057,9 +5998,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 161, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 154, + #else + .expYield = 150, + #endif .evYield_SpAttack = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_MOON_STONE, @@ -5067,8 +6014,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Lunatone"), .cryId = CRY_LUNATONE, @@ -5085,18 +6032,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lunatone, 48, 48), + .frontPic = gMonFrontPic_Lunatone, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Lunatone, .frontAnimId = ANIM_SWING_CONVEX_FAST, .enemyMonElevation = 13, - BACK_PIC(Lunatone, 48, 48), + .backPic = gMonBackPic_Lunatone, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Lunatone), - ICON(Lunatone, 1), - .footprint = gMonFootprint_Lunatone, - LEARNSETS(Lunatone), + .palette = gMonPalette_Lunatone, + .shinyPalette = gMonShinyPalette_Lunatone, + .iconSprite = gMonIcon_Lunatone, + .iconPalIndex = 1, + FOOTPRINT(Lunatone) + .levelUpLearnset = sLunatoneLevelUpLearnset, + .teachableLearnset = sLunatoneTeachableLearnset, }, #endif //P_FAMILY_LUNATONE @@ -5109,9 +6061,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 161, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 154, + #else + .expYield = 150, + #endif .evYield_Attack = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_SUN_STONE, @@ -5119,8 +6077,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Solrock"), .cryId = CRY_SOLROCK, @@ -5137,18 +6095,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Solrock, 64, 64), + .frontPic = gMonFrontPic_Solrock, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Solrock, .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, .enemyMonElevation = 4, - BACK_PIC(Solrock, 64, 64), + .backPic = gMonBackPic_Solrock, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Solrock), - ICON(Solrock, 0), - .footprint = gMonFootprint_Solrock, - LEARNSETS(Solrock), + .palette = gMonPalette_Solrock, + .shinyPalette = gMonShinyPalette_Solrock, + .iconSprite = gMonIcon_Solrock, + .iconPalIndex = 0, + FOOTPRINT(Solrock) + .levelUpLearnset = sSolrockLevelUpLearnset, + .teachableLearnset = sSolrockTeachableLearnset, }, #endif //P_FAMILY_SOLROCK @@ -5161,15 +6124,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 46, .baseSpDefense = 41, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 190, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 92, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Barboach"), @@ -5187,18 +6150,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barboach, 48, 40), + .frontPic = gMonFrontPic_Barboach, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Barboach, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .enemyMonElevation = 7, - BACK_PIC(Barboach, 56, 48), + .backPic = gMonBackPic_Barboach, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Barboach), - ICON(Barboach, 0), - .footprint = gMonFootprint_Barboach, - LEARNSETS(Barboach), + .palette = gMonPalette_Barboach, + .shinyPalette = gMonShinyPalette_Barboach, + .iconSprite = gMonIcon_Barboach, + .iconPalIndex = 0, + FOOTPRINT(Barboach) + .levelUpLearnset = sBarboachLevelUpLearnset, + .teachableLearnset = sBarboachTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_WHISCASH}), }, @@ -5210,15 +6178,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 76, .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 75, - .expYield = 164, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 164 : 158, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Whiscash"), @@ -5236,17 +6204,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whiscash, 64, 48), + .frontPic = gMonFrontPic_Whiscash, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Whiscash, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Whiscash, 64, 48), + .backPic = gMonBackPic_Whiscash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Whiscash), - ICON(Whiscash, 0), - .footprint = gMonFootprint_Whiscash, - LEARNSETS(Whiscash), + .palette = gMonPalette_Whiscash, + .shinyPalette = gMonShinyPalette_Whiscash, + .iconSprite = gMonIcon_Whiscash, + .iconPalIndex = 0, + FOOTPRINT(Whiscash) + .levelUpLearnset = sWhiscashLevelUpLearnset, + .teachableLearnset = sWhiscashTeachableLearnset, }, #endif //P_FAMILY_BARBOACH @@ -5259,15 +6232,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 205, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 111, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Corphish"), @@ -5285,17 +6258,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Corphish, 56, 48), + .frontPic = gMonFrontPic_Corphish, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Corphish, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Corphish, 64, 48), + .backPic = gMonBackPic_Corphish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Corphish), - ICON(Corphish, 0), - .footprint = gMonFootprint_Corphish, - LEARNSETS(Corphish), + .palette = gMonPalette_Corphish, + .shinyPalette = gMonShinyPalette_Corphish, + .iconSprite = gMonIcon_Corphish, + .iconPalIndex = 0, + FOOTPRINT(Corphish) + .levelUpLearnset = sCorphishLevelUpLearnset, + .teachableLearnset = sCorphishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_CRAWDAUNT}), }, @@ -5307,15 +6285,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 90, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), .catchRate = 155, - .expYield = 164, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 164 : 161, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crawdaunt"), @@ -5333,17 +6311,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crawdaunt, 64, 64), + .frontPic = gMonFrontPic_Crawdaunt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Crawdaunt, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Crawdaunt, 64, 56), + .backPic = gMonBackPic_Crawdaunt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Crawdaunt), - ICON(Crawdaunt, 0), - .footprint = gMonFootprint_Crawdaunt, - LEARNSETS(Crawdaunt), + .palette = gMonPalette_Crawdaunt, + .shinyPalette = gMonShinyPalette_Crawdaunt, + .iconSprite = gMonIcon_Crawdaunt, + .iconPalIndex = 0, + FOOTPRINT(Crawdaunt) + .levelUpLearnset = sCrawdauntLevelUpLearnset, + .teachableLearnset = sCrawdauntTeachableLearnset, }, #endif //P_FAMILY_CORPHISH @@ -5356,16 +6339,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_PSYCHIC), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 58, .evYield_SpDefense = 1, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Baltoy"), .cryId = CRY_BALTOY, @@ -5382,18 +6366,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Baltoy, 40, 40), + .frontPic = gMonFrontPic_Baltoy, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Baltoy, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Baltoy, 64, 48), + .backPic = gMonBackPic_Baltoy, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Baltoy), - ICON(Baltoy, 2), - .footprint = gMonFootprint_Baltoy, - LEARNSETS(Baltoy), + .palette = gMonPalette_Baltoy, + .shinyPalette = gMonShinyPalette_Baltoy, + .iconSprite = gMonIcon_Baltoy, + .iconPalIndex = 2, + FOOTPRINT(Baltoy) + .levelUpLearnset = sBaltoyLevelUpLearnset, + .teachableLearnset = sBaltoyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CLAYDOL}), }, @@ -5405,16 +6394,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 120, - .types = { TYPE_GROUND, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_SpDefense = 2, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Claydol"), .cryId = CRY_CLAYDOL, @@ -5431,18 +6421,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 280, .trainerOffset = 1, - FRONT_PIC(Claydol, 56, 64), + .frontPic = gMonFrontPic_Claydol, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Claydol, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 10, - BACK_PIC(Claydol, 64, 56), + .backPic = gMonBackPic_Claydol, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Claydol), - ICON(Claydol, 0), - .footprint = gMonFootprint_Claydol, - LEARNSETS(Claydol), + .palette = gMonPalette_Claydol, + .shinyPalette = gMonShinyPalette_Claydol, + .iconSprite = gMonIcon_Claydol, + .iconPalIndex = 0, + FOOTPRINT(Claydol) + .levelUpLearnset = sClaydolLevelUpLearnset, + .teachableLearnset = sClaydolTeachableLearnset, }, #endif //P_FAMILY_BALTOY @@ -5455,15 +6450,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 23, .baseSpAttack = 61, .baseSpDefense = 87, - .types = { TYPE_ROCK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 121, + #endif .evYield_SpDefense = 1, + .itemRare = ITEM_BIG_ROOT, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Lileep"), @@ -5481,17 +6483,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lileep, 48, 56), + .frontPic = gMonFrontPic_Lileep, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lileep, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lileep, 48, 48), + .backPic = gMonBackPic_Lileep, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Lileep), - ICON(Lileep, 2), - .footprint = gMonFootprint_Lileep, - LEARNSETS(Lileep), + .palette = gMonPalette_Lileep, + .shinyPalette = gMonShinyPalette_Lileep, + .iconSprite = gMonIcon_Lileep, + .iconPalIndex = 2, + FOOTPRINT(Lileep) + .levelUpLearnset = sLileepLevelUpLearnset, + .teachableLearnset = sLileepTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_CRADILY}), }, @@ -5503,15 +6510,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 43, .baseSpAttack = 81, .baseSpDefense = 107, - .types = { TYPE_ROCK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 201, + #endif .evYield_SpDefense = 2, + .itemRare = ITEM_BIG_ROOT, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cradily"), @@ -5529,17 +6543,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cradily, 56, 64), + .frontPic = gMonFrontPic_Cradily, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cradily, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Cradily, 56, 64), + .backPic = gMonBackPic_Cradily, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Cradily), - ICON(Cradily, 1), - .footprint = gMonFootprint_Cradily, - LEARNSETS(Cradily), + .palette = gMonPalette_Cradily, + .shinyPalette = gMonShinyPalette_Cradily, + .iconSprite = gMonIcon_Cradily, + .iconPalIndex = 1, + FOOTPRINT(Cradily) + .levelUpLearnset = sCradilyLevelUpLearnset, + .teachableLearnset = sCradilyTeachableLearnset, }, #endif //P_FAMILY_LILEEP @@ -5552,15 +6571,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_BUG }, + .types = MON_TYPES(TYPE_ROCK, TYPE_BUG), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 119, + #endif .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Anorith"), @@ -5578,17 +6603,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Anorith, 48, 56), + .frontPic = gMonFrontPic_Anorith, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Anorith, .frontAnimId = ANIM_TWIST, - BACK_PIC(Anorith, 56, 32), + .backPic = gMonBackPic_Anorith, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Anorith), - ICON(Anorith, 0), - .footprint = gMonFootprint_Anorith, - LEARNSETS(Anorith), + .palette = gMonPalette_Anorith, + .shinyPalette = gMonShinyPalette_Anorith, + .iconSprite = gMonIcon_Anorith, + .iconPalIndex = 0, + FOOTPRINT(Anorith) + .levelUpLearnset = sAnorithLevelUpLearnset, + .teachableLearnset = sAnorithTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ARMALDO}), }, @@ -5600,15 +6630,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_ROCK, TYPE_BUG }, + .types = MON_TYPES(TYPE_ROCK, TYPE_BUG), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 200, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Armaldo"), @@ -5626,17 +6662,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Armaldo, 64, 64), + .frontPic = gMonFrontPic_Armaldo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Armaldo, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Armaldo, 64, 64), + .backPic = gMonBackPic_Armaldo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Armaldo), - ICON(Armaldo, 2), - .footprint = gMonFootprint_Armaldo, - LEARNSETS(Armaldo), + .palette = gMonPalette_Armaldo, + .shinyPalette = gMonShinyPalette_Armaldo, + .iconSprite = gMonIcon_Armaldo, + .iconPalIndex = 2, + FOOTPRINT(Armaldo) + .levelUpLearnset = sArmaldoLevelUpLearnset, + .teachableLearnset = sArmaldoTeachableLearnset, }, #endif //P_FAMILY_ANORITH @@ -5649,15 +6690,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 10, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 61, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Feebas"), @@ -5675,19 +6716,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Feebas, 40, 48), + .frontPic = gMonFrontPic_Feebas, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Feebas, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Feebas, 48, 56), + .backPic = gMonBackPic_Feebas, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Feebas), - ICON(Feebas, 2), - .footprint = gMonFootprint_Feebas, - LEARNSETS(Feebas), + .palette = gMonPalette_Feebas, + .shinyPalette = gMonShinyPalette_Feebas, + .iconSprite = gMonIcon_Feebas, + .iconPalIndex = 2, + FOOTPRINT(Feebas) + .levelUpLearnset = sFeebasLevelUpLearnset, + .teachableLearnset = sFeebasTeachableLearnset, .evolutions = EVOLUTION({EVO_BEAUTY, 170, SPECIES_MILOTIC}, - {EVO_LEVEL, 20, SPECIES_MILOTIC}), + {EVO_TRADE_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}, + {EVO_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}), }, [SPECIES_MILOTIC] = @@ -5698,15 +6745,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 81, .baseSpAttack = 100, .baseSpDefense = 125, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 189, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 213, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Milotic"), @@ -5724,143 +6771,257 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 360, .trainerOffset = 7, - FRONT_PIC(Milotic, 64, 64), - FRONT_PIC_FEMALE(Milotic, 64, 64), + .frontPic = gMonFrontPic_Milotic, + .frontPicFemale = gMonFrontPic_MiloticF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Milotic, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .frontAnimDelay = 45, - BACK_PIC(Milotic, 64, 64), - BACK_PIC_FEMALE(Milotic, 64, 64), + .backPic = gMonBackPic_Milotic, + .backPicFemale = gMonBackPic_MiloticF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Milotic), - ICON(Milotic, 2), - .footprint = gMonFootprint_Milotic, - LEARNSETS(Milotic), + .palette = gMonPalette_Milotic, + .shinyPalette = gMonShinyPalette_Milotic, + .iconSprite = gMonIcon_Milotic, + .iconPalIndex = 2, + FOOTPRINT(Milotic) + .levelUpLearnset = sMiloticLevelUpLearnset, + .teachableLearnset = sMiloticTeachableLearnset, }, #endif //P_FAMILY_FEEBAS #if P_FAMILY_CASTFORM -#define CASTFORM_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 70, \ - .baseSpAttack = 70, \ - .baseSpDefense = 70, \ - .catchRate = 45, \ - .expYield = 147, \ - .evYield_HP = 1, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_FORECAST, ABILITY_NONE }, \ - .speciesName = _("Castform"), \ - .cryId = CRY_CASTFORM, \ - .natDexNum = NATIONAL_DEX_CASTFORM, \ - .categoryName = _("Weather"), \ - .height = 3, \ - .weight = 8, \ - .pokemonScale = 435, \ - .pokemonOffset = -5, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Castform, \ - LEARNSETS(Castform), \ - .formSpeciesIdTable = sCastformFormSpeciesIdTable, \ - .formChangeTable = sCastformFormChangeTable - [SPECIES_CASTFORM_NORMAL] = { - CASTFORM_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "It alters its form depending on the\n" "weather. Changes in the climate such as\n" "the temperature and humidity appear to\n" "affect its cellular structure."), - FRONT_PIC(CastformNormal, 24, 32), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformNormal, + .frontPicSize = MON_COORDS_SIZE(24, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_CastformNormal, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 16, - BACK_PIC(CastformNormal, 32, 64), + .backPic = gMonBackPic_CastformNormal, + .backPicSize = MON_COORDS_SIZE(32, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(CastformNormal), - ICON(CastformNormal, 0), + .palette = gMonPalette_CastformNormal, + .shinyPalette = gMonShinyPalette_CastformNormal, + .iconSprite = gMonIcon_CastformNormal, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_SUNNY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "Castform takes this form on bright days.\n" "In an experiment where is was placed in\n" "front of a heater, it didn't change to this\n" "form. Its body is warm and toasty."), - FRONT_PIC(CastformSunny, 40, 48), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformSunny, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_CastformSunny, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(CastformSunny, 56, 64), + .backPic = gMonBackPic_CastformSunny, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CastformSunny), - ICON(CastformSunny, 0), + .palette = gMonPalette_CastformSunny, + .shinyPalette = gMonShinyPalette_CastformSunny, + .iconSprite = gMonIcon_CastformSunny, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_RAINY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_WATER, TYPE_WATER }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "This is Castform's form while it's raining.\n" "In an experiment where it was placed in a\n" "shower, it didn't change to this form. Its\n" "body is soft, slightly swollen with water."), - FRONT_PIC(CastformRainy, 32, 48), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformRainy, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_CastformRainy, .frontAnimId = ANIM_SWING_CONVEX_FAST, .enemyMonElevation = 5, - BACK_PIC(CastformRainy, 40, 64), + .backPic = gMonBackPic_CastformRainy, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(CastformRainy), - ICON(CastformRainy, 0), + .palette = gMonPalette_CastformRainy, + .shinyPalette = gMonShinyPalette_CastformRainy, + .iconSprite = gMonIcon_CastformRainy, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_SNOWY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "This is Castform's form in a hailstorm.\n" "In an experiment where it was placed\n" "in a freezer, it didn't change to this form.\n" "Its cold skin is as smooth as ice."), - FRONT_PIC(CastformSnowy, 40, 56), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformSnowy, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_CastformSnowy, .frontAnimId = ANIM_V_STRETCH, .enemyMonElevation = 5, - BACK_PIC(CastformSnowy, 56, 64), + .backPic = gMonBackPic_CastformSnowy, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(CastformSnowy), - ICON(CastformSnowy, 0), + .palette = gMonPalette_CastformSnowy, + .shinyPalette = gMonShinyPalette_CastformSnowy, + .iconSprite = gMonIcon_CastformSnowy, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, #endif //P_FAMILY_CASTFORM @@ -5873,15 +7034,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 120, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 200, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 132, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Kecleon"), @@ -5899,18 +7060,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kecleon, 48, 56), + .frontPic = gMonFrontPic_Kecleon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Kecleon, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 30, - BACK_PIC(Kecleon, 56, 56), + .backPic = gMonBackPic_Kecleon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Kecleon), - ICON(Kecleon, 1), - .footprint = gMonFootprint_Kecleon, - LEARNSETS(Kecleon), + .palette = gMonPalette_Kecleon, + .shinyPalette = gMonShinyPalette_Kecleon, + .iconSprite = gMonIcon_Kecleon, + .iconPalIndex = 1, + FOOTPRINT(Kecleon) + .levelUpLearnset = sKecleonLevelUpLearnset, + .teachableLearnset = sKecleonTeachableLearnset, }, #endif //P_FAMILY_KECLEON @@ -5923,16 +7089,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 63, .baseSpDefense = 33, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 225, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 97, .evYield_Attack = 1, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Shuppet"), @@ -5950,52 +7116,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shuppet, 40, 40), + .frontPic = gMonFrontPic_Shuppet, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shuppet, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Shuppet, 56, 56), + .backPic = gMonBackPic_Shuppet, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Shuppet), - ICON(Shuppet, 0), - .footprint = gMonFootprint_Shuppet, - LEARNSETS(Shuppet), + .palette = gMonPalette_Shuppet, + .shinyPalette = gMonShinyPalette_Shuppet, + .iconSprite = gMonIcon_Shuppet, + .iconPalIndex = 0, + FOOTPRINT(Shuppet) + .levelUpLearnset = sShuppetLevelUpLearnset, + .teachableLearnset = sShuppetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BANETTE}), }, -#define BANETTE_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_SPELL_TAG, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Banette"), \ - .natDexNum = NATIONAL_DEX_BANETTE, \ - .categoryName = _("Marionette"), \ - .footprint = gMonFootprint_Banette, \ - LEARNSETS(Banette), \ - .formSpeciesIdTable = sBanetteFormSpeciesIdTable, \ - .formChangeTable = sBanetteFormChangeTable - [SPECIES_BANETTE] = { - BANETTE_MISC_INFO, .baseHP = 64, .baseAttack = 115, .baseDefense = 65, .baseSpeed = 65, .baseSpAttack = 83, .baseSpDefense = 63, - .expYield = 159, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 179, + .evYield_Attack = 2, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Banette"), .cryId = CRY_BANETTE, + .natDexNum = NATIONAL_DEX_BANETTE, + .categoryName = _("Marionette"), .height = 11, .weight = 125, .description = COMPOUND_STRING( @@ -6007,30 +7171,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Banette, 56, 56), + .frontPic = gMonFrontPic_Banette, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Banette, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Banette, 64, 64), + .backPic = gMonBackPic_Banette, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Banette), - ICON(Banette, 0), + .palette = gMonPalette_Banette, + .shinyPalette = gMonShinyPalette_Banette, + .iconSprite = gMonIcon_Banette, + .iconPalIndex = 0, + FOOTPRINT(Banette) + .levelUpLearnset = sBanetteLevelUpLearnset, + .teachableLearnset = sBanetteTeachableLearnset, + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, + .formChangeTable = sBanetteFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BANETTE_MEGA] = { - BANETTE_MISC_INFO, .baseHP = 64, .baseAttack = 165, .baseDefense = 75, .baseSpeed = 75, .baseSpAttack = 93, .baseSpDefense = 83, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, .expYield = 194, + .evYield_Attack = 2, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRANKSTER, ABILITY_PRANKSTER, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Banette"), .cryId = CRY_BANETTE_MEGA, + .natDexNum = NATIONAL_DEX_BANETTE, + .categoryName = _("Marionette"), .height = 12, .weight = 130, .description = COMPOUND_STRING( @@ -6041,17 +7226,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BanetteMega, 64, 64), + .frontPic = gMonFrontPic_BanetteMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BanetteMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(BanetteMega, 64, 64), + .backPic = gMonBackPic_BanetteMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(BanetteMega), - ICON(BanetteMega, 0), + .palette = gMonPalette_BanetteMega, + .shinyPalette = gMonShinyPalette_BanetteMega, + .iconSprite = gMonIcon_BanetteMega, + .iconPalIndex = 0, + FOOTPRINT(Banette) .isMegaEvolution = TRUE, + .levelUpLearnset = sBanetteLevelUpLearnset, + .teachableLearnset = sBanetteTeachableLearnset, + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, + .formChangeTable = sBanetteFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SHUPPET @@ -6065,16 +7259,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 190, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 97, + .evYield_Defense = (P_UPDATED_EVS >= GEN_4) ? 0 : 1, .evYield_SpDefense = 1, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Duskull"), @@ -6092,18 +7287,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Duskull, 40, 48), + .frontPic = gMonFrontPic_Duskull, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Duskull, .frontAnimId = ANIM_ZIGZAG_FAST, .enemyMonElevation = 13, - BACK_PIC(Duskull, 56, 56), + .backPic = gMonBackPic_Duskull, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Duskull), - ICON(Duskull, 0), - .footprint = gMonFootprint_Duskull, - LEARNSETS(Duskull), + .palette = gMonPalette_Duskull, + .shinyPalette = gMonShinyPalette_Duskull, + .iconSprite = gMonIcon_Duskull, + .iconPalIndex = 0, + FOOTPRINT(Duskull) + .levelUpLearnset = sDuskullLevelUpLearnset, + .teachableLearnset = sDuskullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_DUSCLOPS}), }, @@ -6115,17 +7315,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 60, .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 90, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 179, .evYield_Defense = 1, - .evYield_SpDefense = 1, + .evYield_SpDefense = (P_UPDATED_EVS >= GEN_4) ? 1 : 2, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Dusclops"), @@ -6143,19 +7343,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 299, .trainerOffset = 1, - FRONT_PIC(Dusclops, 64, 64), + .frontPic = gMonFrontPic_Dusclops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Dusclops, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 30, - BACK_PIC(Dusclops, 64, 64), + .backPic = gMonBackPic_Dusclops, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Dusclops), - ICON(Dusclops, 0), - .footprint = gMonFootprint_Dusclops, - LEARNSETS(Dusclops), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_DUSKNOIR}), + .palette = gMonPalette_Dusclops, + .shinyPalette = gMonShinyPalette_Dusclops, + .iconSprite = gMonIcon_Dusclops, + .iconPalIndex = 0, + FOOTPRINT(Dusclops) + .levelUpLearnset = sDusclopsLevelUpLearnset, + .teachableLearnset = sDusclopsTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}, + {EVO_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}), }, #if P_GEN_4_CROSS_EVOS @@ -6167,9 +7373,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 135, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 210, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .itemRare = ITEM_SPELL_TAG, @@ -6177,7 +7389,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Dusknoir"), @@ -6195,18 +7407,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Dusknoir, 64, 64), + .frontPic = gMonFrontPic_Dusknoir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Dusknoir, .frontAnimId = ANIM_H_SLIDE, .enemyMonElevation = 6, - BACK_PIC(Dusknoir, 64, 56), + .backPic = gMonBackPic_Dusknoir, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Dusknoir), - ICON(Dusknoir, 2), - .footprint = gMonFootprint_Dusknoir, - LEARNSETS(Dusknoir), + .palette = gMonPalette_Dusknoir, + .shinyPalette = gMonShinyPalette_Dusknoir, + .iconSprite = gMonIcon_Dusknoir, + .iconPalIndex = 2, + FOOTPRINT(Dusknoir) + .levelUpLearnset = sDusknoirLevelUpLearnset, + .teachableLearnset = sDusknoirTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_DUSKULL @@ -6220,15 +7437,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 51, .baseSpAttack = 72, .baseSpDefense = 87, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 200, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 169, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Tropius"), @@ -6246,17 +7463,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 344, .trainerOffset = 7, - FRONT_PIC(Tropius, 64, 64), + .frontPic = gMonFrontPic_Tropius, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tropius, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tropius, 56, 64), + .backPic = gMonBackPic_Tropius, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tropius), - ICON(Tropius, 1), - .footprint = gMonFootprint_Tropius, - LEARNSETS(Tropius), + .palette = gMonPalette_Tropius, + .shinyPalette = gMonShinyPalette_Tropius, + .iconSprite = gMonIcon_Tropius, + .iconPalIndex = 1, + FOOTPRINT(Tropius) + .levelUpLearnset = sTropiusLevelUpLearnset, + .teachableLearnset = sTropiusTeachableLearnset, }, #endif //P_FAMILY_TROPIUS @@ -6270,17 +7492,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 74, .evYield_SpAttack = 1, .itemRare = ITEM_CLEANSE_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Chingling"), .cryId = CRY_CHINGLING, @@ -6297,38 +7519,43 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chingling, 40, 40), + .frontPic = gMonFrontPic_Chingling, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Chingling, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Chingling, 48, 48), + .backPic = gMonBackPic_Chingling, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chingling), - ICON(Chingling, 1), - .footprint = gMonFootprint_Chingling, - LEARNSETS(Chingling), + .palette = gMonPalette_Chingling, + .shinyPalette = gMonShinyPalette_Chingling, + .iconSprite = gMonIcon_Chingling, + .iconPalIndex = 1, + FOOTPRINT(Chingling) + .levelUpLearnset = sChinglingLevelUpLearnset, + .teachableLearnset = sChinglingTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_CHIMECHO}), }, #endif //P_GEN_4_CROSS_EVOS [SPECIES_CHIMECHO] = { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 75 : 65, .baseAttack = 50, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 80 : 70, .baseSpeed = 65, .baseSpAttack = 95, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 75, - .baseDefense = 80, - .baseSpDefense = 90, - #else - .baseHP = 65, - .baseDefense = 70, - .baseSpDefense = 80, - #endif - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 90 : 80, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 149, + #else + .expYield = 147, + #endif .evYield_SpAttack = 1, .evYield_SpDefense = 1, .itemRare = ITEM_CLEANSE_TAG, @@ -6336,8 +7563,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Chimecho"), .cryId = CRY_CHIMECHO, @@ -6354,105 +7581,138 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chimecho, 48, 48), + .frontPic = gMonFrontPic_Chimecho, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chimecho, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 16, - BACK_PIC(Chimecho, 64, 56), + .backPic = gMonBackPic_Chimecho, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chimecho), - ICON(Chimecho, 0), - .footprint = gMonFootprint_Chimecho, - LEARNSETS(Chimecho), + .palette = gMonPalette_Chimecho, + .shinyPalette = gMonShinyPalette_Chimecho, + .iconSprite = gMonIcon_Chimecho, + .iconPalIndex = 0, + FOOTPRINT(Chimecho) + .levelUpLearnset = sChimechoLevelUpLearnset, + .teachableLearnset = sChimechoTeachableLearnset, }, #endif //P_FAMILY_CHIMECHO #if P_FAMILY_ABSOL -#define ABSOL_MISC_INFO \ - .types = { TYPE_DARK, TYPE_DARK }, \ - .catchRate = 30, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = TRUE, \ - .speciesName = _("Absol"), \ - .natDexNum = NATIONAL_DEX_ABSOL, \ - .categoryName = _("Disaster"), \ - .height = 12, \ - .pokemonScale = 301, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Absol, \ - LEARNSETS(Absol), \ - .formSpeciesIdTable = sAbsolFormSpeciesIdTable, \ - .formChangeTable = sAbsolFormChangeTable - [SPECIES_ABSOL] = { - ABSOL_MISC_INFO, .baseHP = 65, .baseAttack = 130, .baseDefense = 60, .baseSpeed = 75, .baseSpAttack = 75, .baseSpDefense = 60, - .expYield = 163, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 30, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 174, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_SUPER_LUCK, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Absol"), .cryId = CRY_ABSOL, + .natDexNum = NATIONAL_DEX_ABSOL, + .categoryName = _("Disaster"), + .height = 12, .weight = 470, .description = COMPOUND_STRING( "It sharply senses even subtle changes in\n" "the sky and the land to predict natural\n" "disasters. It is a long-lived Pokémon that\n" "has a life-span of 100 years."), - FRONT_PIC(Absol, 56, 64), + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Absol, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Absol, .frontAnimId = ANIM_CIRCULAR_VIBRATE, .frontAnimDelay = 45, - BACK_PIC(Absol, 64, 64), + .backPic = gMonBackPic_Absol, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Absol), - ICON(Absol, 0), + .palette = gMonPalette_Absol, + .shinyPalette = gMonShinyPalette_Absol, + .iconSprite = gMonIcon_Absol, + .iconPalIndex = 0, + FOOTPRINT(Absol) + .levelUpLearnset = sAbsolLevelUpLearnset, + .teachableLearnset = sAbsolTeachableLearnset, + .formSpeciesIdTable = sAbsolFormSpeciesIdTable, + .formChangeTable = sAbsolFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ABSOL_MEGA] = { - ABSOL_MISC_INFO, .baseHP = 65, .baseAttack = 150, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 115, .baseSpDefense = 60, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 30, .expYield = 198, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Absol"), .cryId = CRY_ABSOL_MEGA, + .natDexNum = NATIONAL_DEX_ABSOL, + .categoryName = _("Disaster"), + .height = 12, .weight = 490, .description = COMPOUND_STRING( "As the energy of Mega Evolution fills it,\n" "its fur bristles. What you see on its back\n" "are not true wings, and this Pokémon isn't\n" "able to fly."), - FRONT_PIC(AbsolMega, 64, 64), + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_AbsolMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AbsolMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AbsolMega, 64, 64), + .backPic = gMonBackPic_AbsolMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(AbsolMega), - ICON(AbsolMega, 0), + .palette = gMonPalette_AbsolMega, + .shinyPalette = gMonShinyPalette_AbsolMega, + .iconSprite = gMonIcon_AbsolMega, + .iconPalIndex = 0, + FOOTPRINT(Absol) .isMegaEvolution = TRUE, + .levelUpLearnset = sAbsolLevelUpLearnset, + .teachableLearnset = sAbsolTeachableLearnset, + .formSpeciesIdTable = sAbsolFormSpeciesIdTable, + .formChangeTable = sAbsolFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ABSOL @@ -6466,15 +7726,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 74, .evYield_HP = 1, + .itemRare = ITEM_SNOWBALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Snorunt"), @@ -6492,52 +7753,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snorunt, 32, 40), + .frontPic = gMonFrontPic_Snorunt, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snorunt, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .frontAnimDelay = 20, - BACK_PIC(Snorunt, 56, 48), + .backPic = gMonBackPic_Snorunt, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Snorunt), - ICON(Snorunt, 2), - .footprint = gMonFootprint_Snorunt, - LEARNSETS(Snorunt), + .palette = gMonPalette_Snorunt, + .shinyPalette = gMonShinyPalette_Snorunt, + .iconSprite = gMonIcon_Snorunt, + .iconPalIndex = 2, + FOOTPRINT(Snorunt) + .levelUpLearnset = sSnoruntLevelUpLearnset, + .teachableLearnset = sSnoruntTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GLALIE}, - {EVO_ITEM_FEMALE, ITEM_SUN_STONE, SPECIES_FROSLASS}), + {EVO_ITEM_FEMALE, ITEM_DAWN_STONE, SPECIES_FROSLASS}), }, -#define GLALIE_MISC_INFO \ - .types = { TYPE_ICE, TYPE_ICE }, \ - .catchRate = 75, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL },\ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Glalie"), \ - .natDexNum = NATIONAL_DEX_GLALIE, \ - .categoryName = _("Face"), \ - .footprint = gMonFootprint_Glalie, \ - LEARNSETS(Glalie), \ - .formSpeciesIdTable = sGlalieFormSpeciesIdTable, \ - .formChangeTable = sGlalieFormChangeTable - [SPECIES_GLALIE] = { - GLALIE_MISC_INFO, .baseHP = 80, .baseAttack = 80, .baseDefense = 80, .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .expYield = 168, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 187, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Glalie"), .cryId = CRY_GLALIE, + .natDexNum = NATIONAL_DEX_GLALIE, + .categoryName = _("Face"), .height = 15, .weight = 2565, .description = COMPOUND_STRING( @@ -6549,31 +7808,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 344, .trainerOffset = 0, - FRONT_PIC(Glalie, 56, 56), + .frontPic = gMonFrontPic_Glalie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Glalie, .frontAnimId = ANIM_ZIGZAG_FAST, .enemyMonElevation = 12, - BACK_PIC(Glalie, 64, 48), + .backPic = gMonBackPic_Glalie, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Glalie), - ICON(Glalie, 0), + .palette = gMonPalette_Glalie, + .shinyPalette = gMonShinyPalette_Glalie, + .iconSprite = gMonIcon_Glalie, + .iconPalIndex = 0, + FOOTPRINT(Glalie) + .levelUpLearnset = sGlalieLevelUpLearnset, + .teachableLearnset = sGlalieTeachableLearnset, + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, + .formChangeTable = sGlalieFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GLALIE_MEGA] = { - GLALIE_MISC_INFO, .baseHP = 80, .baseAttack = 120, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 120, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 75, .expYield = 203, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_REFRIGERATE, ABILITY_REFRIGERATE, ABILITY_REFRIGERATE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Glalie"), .cryId = CRY_GLALIE_MEGA, + .natDexNum = NATIONAL_DEX_GLALIE, + .categoryName = _("Face"), .height = 21, .weight = 3502, .description = COMPOUND_STRING( @@ -6584,17 +7863,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 344, .trainerOffset = 0, - FRONT_PIC(GlalieMega, 56, 64), + .frontPic = gMonFrontPic_GlalieMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GlalieMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(GlalieMega, 64, 48), + .backPic = gMonBackPic_GlalieMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(GlalieMega), - ICON(GlalieMega, 0), + .palette = gMonPalette_GlalieMega, + .shinyPalette = gMonShinyPalette_GlalieMega, + .iconSprite = gMonIcon_GlalieMega, + .iconPalIndex = 0, + FOOTPRINT(Glalie) .isMegaEvolution = TRUE, + .levelUpLearnset = sGlalieLevelUpLearnset, + .teachableLearnset = sGlalieTeachableLearnset, + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, + .formChangeTable = sGlalieFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS @@ -6607,15 +7895,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 110, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_ICE, TYPE_GHOST), .catchRate = 75, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 187, .evYield_Speed = 2, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Froslass"), @@ -6633,18 +7921,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Froslass, 48, 48), + .frontPic = gMonFrontPic_Froslass, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Froslass, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Froslass, 64, 64), + .backPic = gMonBackPic_Froslass, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Froslass), - ICON(Froslass, 0), - .footprint = gMonFootprint_Froslass, - LEARNSETS(Froslass), + .palette = gMonPalette_Froslass, + .shinyPalette = gMonShinyPalette_Froslass, + .iconSprite = gMonIcon_Froslass, + .iconPalIndex = 0, + FOOTPRINT(Froslass) + .levelUpLearnset = sFroslassLevelUpLearnset, + .teachableLearnset = sFroslassTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SNORUNT @@ -6658,15 +7951,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 55, .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 75, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Spheal"), @@ -6684,18 +7977,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spheal, 40, 48), + .frontPic = gMonFrontPic_Spheal, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Spheal, .frontAnimId = ANIM_SPIN_LONG, .frontAnimDelay = 15, - BACK_PIC(Spheal, 48, 40), + .backPic = gMonBackPic_Spheal, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Spheal), - ICON(Spheal, 2), - .footprint = gMonFootprint_Spheal, - LEARNSETS(Spheal), + .palette = gMonPalette_Spheal, + .shinyPalette = gMonShinyPalette_Spheal, + .iconSprite = gMonIcon_Spheal, + .iconPalIndex = 2, + FOOTPRINT(Spheal) + .levelUpLearnset = sSphealLevelUpLearnset, + .teachableLearnset = sSphealTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEALEO}), }, @@ -6707,15 +8005,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 75, .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 120, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 128, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sealeo"), @@ -6733,17 +8031,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sealeo, 56, 48), + .frontPic = gMonFrontPic_Sealeo, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Sealeo, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Sealeo, 64, 48), + .backPic = gMonBackPic_Sealeo, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Sealeo), - ICON(Sealeo, 2), - .footprint = gMonFootprint_Sealeo, - LEARNSETS(Sealeo), + .palette = gMonPalette_Sealeo, + .shinyPalette = gMonShinyPalette_Sealeo, + .iconSprite = gMonIcon_Sealeo, + .iconPalIndex = 2, + FOOTPRINT(Sealeo) + .levelUpLearnset = sSealeoLevelUpLearnset, + .teachableLearnset = sSealeoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 44, SPECIES_WALREIN}), }, @@ -6755,15 +8058,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 192, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Walrein"), @@ -6781,17 +8090,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Walrein, 64, 64), + .frontPic = gMonFrontPic_Walrein, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Walrein, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Walrein, 64, 64), + .backPic = gMonBackPic_Walrein, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Walrein), - ICON(Walrein, 0), - .footprint = gMonFootprint_Walrein, - LEARNSETS(Walrein), + .palette = gMonPalette_Walrein, + .shinyPalette = gMonShinyPalette_Walrein, + .iconSprite = gMonIcon_Walrein, + .iconPalIndex = 0, + FOOTPRINT(Walrein) + .levelUpLearnset = sWalreinLevelUpLearnset, + .teachableLearnset = sWalreinTeachableLearnset, }, #endif //P_FAMILY_SPHEAL @@ -6804,9 +8118,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 32, .baseSpAttack = 74, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 142, .evYield_Defense = 1, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6814,7 +8128,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Clamperl"), @@ -6832,17 +8146,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clamperl, 40, 48), + .frontPic = gMonFrontPic_Clamperl, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Clamperl, .frontAnimId = ANIM_TWIST, - BACK_PIC(Clamperl, 56, 40), + .backPic = gMonBackPic_Clamperl, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clamperl), - ICON(Clamperl, 0), - .footprint = gMonFootprint_Clamperl, - LEARNSETS(Clamperl), + .palette = gMonPalette_Clamperl, + .shinyPalette = gMonShinyPalette_Clamperl, + .iconSprite = gMonIcon_Clamperl, + .iconPalIndex = 0, + FOOTPRINT(Clamperl) + .levelUpLearnset = sClamperlLevelUpLearnset, + .teachableLearnset = sClamperlTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}, {EVO_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, @@ -6857,9 +8176,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 52, .baseSpAttack = 94, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 178, .evYield_Attack = 1, .evYield_Defense = 1, .itemRare = ITEM_DEEP_SEA_TOOTH, @@ -6867,7 +8186,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Huntail"), @@ -6885,17 +8204,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Huntail, 64, 64), + .frontPic = gMonFrontPic_Huntail, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Huntail, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Huntail, 64, 56), + .backPic = gMonBackPic_Huntail, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Huntail), - ICON(Huntail, 0), - .footprint = gMonFootprint_Huntail, - LEARNSETS(Huntail), + .palette = gMonPalette_Huntail, + .shinyPalette = gMonShinyPalette_Huntail, + .iconSprite = gMonIcon_Huntail, + .iconPalIndex = 0, + FOOTPRINT(Huntail) + .levelUpLearnset = sHuntailLevelUpLearnset, + .teachableLearnset = sHuntailTeachableLearnset, }, [SPECIES_GOREBYSS] = @@ -6906,16 +8230,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 52, .baseSpAttack = 114, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 178, .evYield_SpAttack = 2, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Gorebyss"), @@ -6933,17 +8257,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gorebyss, 64, 56), + .frontPic = gMonFrontPic_Gorebyss, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Gorebyss, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Gorebyss, 64, 56), + .backPic = gMonBackPic_Gorebyss, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Gorebyss), - ICON(Gorebyss, 0), - .footprint = gMonFootprint_Gorebyss, - LEARNSETS(Gorebyss), + .palette = gMonPalette_Gorebyss, + .shinyPalette = gMonShinyPalette_Gorebyss, + .iconSprite = gMonIcon_Gorebyss, + .iconPalIndex = 0, + FOOTPRINT(Gorebyss) + .levelUpLearnset = sGorebyssLevelUpLearnset, + .teachableLearnset = sGorebyssTeachableLearnset, }, #endif //P_FAMILY_CLAMPERL @@ -6956,9 +8285,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 25, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 198, .evYield_HP = 1, .evYield_Defense = 1, .itemRare = ITEM_DEEP_SEA_SCALE, @@ -6966,7 +8295,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Relicanth"), @@ -6984,19 +8313,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Relicanth, 56, 56), - FRONT_PIC_FEMALE(Relicanth, 56, 56), + .frontPic = gMonFrontPic_Relicanth, + .frontPicFemale = gMonFrontPic_RelicanthF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Relicanth, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Relicanth, 64, 40), - BACK_PIC_FEMALE(Relicanth, 64, 40), + .backPic = gMonBackPic_Relicanth, + .backPicFemale = gMonBackPic_RelicanthF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Relicanth), - ICON(Relicanth, 2), - .footprint = gMonFootprint_Relicanth, - LEARNSETS(Relicanth), + .palette = gMonPalette_Relicanth, + .shinyPalette = gMonShinyPalette_Relicanth, + .iconSprite = gMonIcon_Relicanth, + .iconPalIndex = 2, + FOOTPRINT(Relicanth) + .levelUpLearnset = sRelicanthLevelUpLearnset, + .teachableLearnset = sRelicanthTeachableLearnset, }, #endif //P_FAMILY_RELICANTH @@ -7009,16 +8345,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 97, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 116, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 116 : 110, .evYield_Speed = 1, .itemCommon = ITEM_HEART_SCALE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Luvdisc"), @@ -7036,17 +8372,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Luvdisc, 32, 40), + .frontPic = gMonFrontPic_Luvdisc, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Luvdisc, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Luvdisc, 40, 48), + .backPic = gMonBackPic_Luvdisc, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Luvdisc), - ICON(Luvdisc, 0), - .footprint = gMonFootprint_Luvdisc, - LEARNSETS(Luvdisc), + .palette = gMonPalette_Luvdisc, + .shinyPalette = gMonShinyPalette_Luvdisc, + .iconSprite = gMonIcon_Luvdisc, + .iconPalIndex = 0, + FOOTPRINT(Luvdisc) + .levelUpLearnset = sLuvdiscLevelUpLearnset, + .teachableLearnset = sLuvdiscTeachableLearnset, }, #endif //P_FAMILY_LUVDISC @@ -7059,16 +8400,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 89, .evYield_Attack = 1, .itemRare = ITEM_DRAGON_FANG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Bagon"), @@ -7086,17 +8427,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bagon, 32, 48), + .frontPic = gMonFrontPic_Bagon, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Bagon, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Bagon, 48, 56), + .backPic = gMonBackPic_Bagon, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Bagon), - ICON(Bagon, 0), - .footprint = gMonFootprint_Bagon, - LEARNSETS(Bagon), + .palette = gMonPalette_Bagon, + .shinyPalette = gMonShinyPalette_Bagon, + .iconSprite = gMonIcon_Bagon, + .iconPalIndex = 0, + FOOTPRINT(Bagon) + .levelUpLearnset = sBagonLevelUpLearnset, + .teachableLearnset = sBagonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHELGON}), }, @@ -7108,16 +8454,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 144, .evYield_Defense = 2, .itemRare = ITEM_DRAGON_FANG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Shelgon"), @@ -7135,51 +8481,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shelgon, 48, 48), + .frontPic = gMonFrontPic_Shelgon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Shelgon, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Shelgon, 64, 40), + .backPic = gMonBackPic_Shelgon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shelgon), - ICON(Shelgon, 2), - .footprint = gMonFootprint_Shelgon, - LEARNSETS(Shelgon), + .palette = gMonPalette_Shelgon, + .shinyPalette = gMonShinyPalette_Shelgon, + .iconSprite = gMonIcon_Shelgon, + .iconPalIndex = 2, + FOOTPRINT(Shelgon) + .levelUpLearnset = sShelgonLevelUpLearnset, + .teachableLearnset = sShelgonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_SALAMENCE}), }, -#define SALAMENCE_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .itemRare = ITEM_DRAGON_FANG, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Salamence"), \ - .natDexNum = NATIONAL_DEX_SALAMENCE, \ - .categoryName = _("Dragon"), \ - .footprint = gMonFootprint_Salamence, \ - LEARNSETS(Salamence), \ - .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, \ - .formChangeTable = sSalamenceFormChangeTable - [SPECIES_SALAMENCE] = { - SALAMENCE_MISC_INFO, .baseHP = 95, .baseAttack = 135, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 110, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Salamence"), .cryId = CRY_SALAMENCE, + .natDexNum = NATIONAL_DEX_SALAMENCE, + .categoryName = _("Dragon"), .height = 15, .weight = 1026, .description = COMPOUND_STRING( @@ -7191,31 +8541,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salamence, 64, 64), + .frontPic = gMonFrontPic_Salamence, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Salamence, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 70, - BACK_PIC(Salamence, 56, 64), + .backPic = gMonBackPic_Salamence, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Salamence), - ICON(Salamence, 0), + .palette = gMonPalette_Salamence, + .shinyPalette = gMonShinyPalette_Salamence, + .iconSprite = gMonIcon_Salamence, + .iconPalIndex = 0, + FOOTPRINT(Salamence) + .levelUpLearnset = sSalamenceLevelUpLearnset, + .teachableLearnset = sSalamenceTeachableLearnset, + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, + .formChangeTable = sSalamenceFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SALAMENCE_MEGA] = { - SALAMENCE_MISC_INFO, .baseHP = 95, .baseAttack = 145, .baseDefense = 130, .baseSpeed = 120, .baseSpAttack = 120, .baseSpDefense = 90, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Salamence"), .cryId = CRY_SALAMENCE_MEGA, + .natDexNum = NATIONAL_DEX_SALAMENCE, + .categoryName = _("Dragon"), .height = 18, .weight = 1126, .description = COMPOUND_STRING( @@ -7227,16 +8598,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SalamenceMega, 64, 64), + .frontPic = gMonFrontPic_SalamenceMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_SalamenceMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SalamenceMega, 56, 64), + .backPic = gMonBackPic_SalamenceMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(SalamenceMega), - ICON(SalamenceMega, 0), + .palette = gMonPalette_SalamenceMega, + .shinyPalette = gMonShinyPalette_SalamenceMega, + .iconSprite = gMonIcon_SalamenceMega, + .iconPalIndex = 0, + FOOTPRINT(Salamence) .isMegaEvolution = TRUE, + .levelUpLearnset = sSalamenceLevelUpLearnset, + .teachableLearnset = sSalamenceTeachableLearnset, + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, + .formChangeTable = sSalamenceFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BAGON @@ -7250,16 +8630,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 103, .evYield_Defense = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Beldum"), @@ -7277,18 +8657,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beldum, 48, 40), + .frontPic = gMonFrontPic_Beldum, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Beldum, .frontAnimId = ANIM_H_SHAKE, .enemyMonElevation = 8, - BACK_PIC(Beldum, 64, 48), + .backPic = gMonBackPic_Beldum, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Beldum), - ICON(Beldum, 0), - .footprint = gMonFootprint_Beldum, - LEARNSETS(Beldum), + .palette = gMonPalette_Beldum, + .shinyPalette = gMonShinyPalette_Beldum, + .iconSprite = gMonIcon_Beldum, + .iconPalIndex = 0, + FOOTPRINT(Beldum) + .tmIlliterate = TRUE, + .levelUpLearnset = sBeldumLevelUpLearnset, + .teachableLearnset = sBeldumTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_METANG}), }, @@ -7300,16 +8686,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 153, .evYield_Defense = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Metang"), @@ -7327,51 +8713,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Metang, 64, 48), + .frontPic = gMonFrontPic_Metang, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Metang, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Metang, 64, 40), + .backPic = gMonBackPic_Metang, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Metang), - ICON(Metang, 0), - .footprint = gMonFootprint_Metang, - LEARNSETS(Metang), + .palette = gMonPalette_Metang, + .shinyPalette = gMonShinyPalette_Metang, + .iconSprite = gMonIcon_Metang, + .iconPalIndex = 0, + FOOTPRINT(Metang) + .levelUpLearnset = sMetangLevelUpLearnset, + .teachableLearnset = sMetangTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_METAGROSS}), }, -#define METAGROSS_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_Defense = 3, \ - .itemRare = ITEM_METAL_COAT, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Metagross"), \ - .natDexNum = NATIONAL_DEX_METAGROSS, \ - .categoryName = _("Iron Leg"), \ - .footprint = gMonFootprint_Metagross, \ - LEARNSETS(Metagross), \ - .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, \ - .formChangeTable = sMetagrossFormChangeTable - [SPECIES_METAGROSS] = { - METAGROSS_MISC_INFO, .baseHP = 80, .baseAttack = 135, .baseDefense = 130, .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif + .evYield_Defense = 3, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Metagross"), .cryId = CRY_METAGROSS, + .natDexNum = NATIONAL_DEX_METAGROSS, + .categoryName = _("Iron Leg"), .height = 16, .weight = 5500, .description = COMPOUND_STRING( @@ -7383,30 +8773,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 447, .trainerOffset = 9, - FRONT_PIC(Metagross, 64, 48), + .frontPic = gMonFrontPic_Metagross, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Metagross, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Metagross, 64, 56), + .backPic = gMonBackPic_Metagross, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Metagross), - ICON(Metagross, 0), + .palette = gMonPalette_Metagross, + .shinyPalette = gMonShinyPalette_Metagross, + .iconSprite = gMonIcon_Metagross, + .iconPalIndex = 0, + FOOTPRINT(Metagross) + .levelUpLearnset = sMetagrossLevelUpLearnset, + .teachableLearnset = sMetagrossTeachableLearnset, + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, + .formChangeTable = sMetagrossFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_METAGROSS_MEGA] = { - METAGROSS_MISC_INFO, .baseHP = 80, .baseAttack = 145, .baseDefense = 150, .baseSpeed = 110, .baseSpAttack = 105, .baseSpDefense = 110, - .expYield = 315, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Defense = 3, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Metagross"), .cryId = CRY_METAGROSS_MEGA, + .natDexNum = NATIONAL_DEX_METAGROSS, + .categoryName = _("Iron Leg"), .height = 25, .weight = 9429, .description = COMPOUND_STRING( @@ -7417,17 +8828,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 447, .trainerOffset = 9, - FRONT_PIC(MetagrossMega, 64, 64), + .frontPic = gMonFrontPic_MetagrossMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MetagrossMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(MetagrossMega, 64, 56), + .backPic = gMonBackPic_MetagrossMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(MetagrossMega), - ICON(MetagrossMega, 0), + .palette = gMonPalette_MetagrossMega, + .shinyPalette = gMonShinyPalette_MetagrossMega, + .iconSprite = gMonIcon_MetagrossMega, + .iconPalIndex = 0, + FOOTPRINT(Metagross) .isMegaEvolution = TRUE, + .levelUpLearnset = sMetagrossLevelUpLearnset, + .teachableLearnset = sMetagrossTeachableLearnset, + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, + .formChangeTable = sMetagrossFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BELDUM @@ -7441,19 +8861,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, - .isLegendary = TRUE, .speciesName = _("Regirock"), .cryId = CRY_REGIROCK, .natDexNum = NATIONAL_DEX_REGIROCK, @@ -7469,17 +8894,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 309, .trainerOffset = 1, - FRONT_PIC(Regirock, 64, 64), + .frontPic = gMonFrontPic_Regirock, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Regirock, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Regirock, 64, 56), + .backPic = gMonBackPic_Regirock, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Regirock), - ICON(Regirock, 2), - .footprint = gMonFootprint_Regirock, - LEARNSETS(Regirock), + .palette = gMonPalette_Regirock, + .shinyPalette = gMonShinyPalette_Regirock, + .iconSprite = gMonIcon_Regirock, + .iconPalIndex = 2, + FOOTPRINT(Regirock) + .isLegendary = TRUE, + .levelUpLearnset = sRegirockLevelUpLearnset, + .teachableLearnset = sRegirockTeachableLearnset, }, #endif //P_FAMILY_REGIROCK @@ -7492,18 +8923,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 200, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Regice"), .cryId = CRY_REGICE, .natDexNum = NATIONAL_DEX_REGICE, @@ -7519,17 +8955,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 301, .trainerOffset = 2, - FRONT_PIC(Regice, 64, 64), + .frontPic = gMonFrontPic_Regice, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Regice, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Regice, 64, 48), + .backPic = gMonBackPic_Regice, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Regice), - ICON(Regice, 0), - .footprint = gMonFootprint_Regice, - LEARNSETS(Regice), + .palette = gMonPalette_Regice, + .shinyPalette = gMonShinyPalette_Regice, + .iconSprite = gMonIcon_Regice, + .iconPalIndex = 0, + FOOTPRINT(Regice) + .isLegendary = TRUE, + .levelUpLearnset = sRegiceLevelUpLearnset, + .teachableLearnset = sRegiceTeachableLearnset, }, #endif //P_FAMILY_REGICE @@ -7542,19 +8984,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 75, .baseSpDefense = 150, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_Defense = 2, .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Registeel"), .cryId = CRY_REGISTEEL, .natDexNum = NATIONAL_DEX_REGISTEEL, @@ -7570,52 +9017,56 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 359, .trainerOffset = 6, - FRONT_PIC(Registeel, 64, 56), + .frontPic = gMonFrontPic_Registeel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Registeel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Registeel, 64, 48), + .backPic = gMonBackPic_Registeel, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Registeel), - ICON(Registeel, 2), - .footprint = gMonFootprint_Registeel, - LEARNSETS(Registeel), + .palette = gMonPalette_Registeel, + .shinyPalette = gMonShinyPalette_Registeel, + .iconSprite = gMonIcon_Registeel, + .iconPalIndex = 2, + FOOTPRINT(Registeel) + .isLegendary = TRUE, + .levelUpLearnset = sRegisteelLevelUpLearnset, + .teachableLearnset = sRegisteelTeachableLearnset, }, #endif //P_FAMILY_REGISTEEL #if P_FAMILY_LATIAS -#define LATIAS_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_SpDefense = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Latias"), \ - .natDexNum = NATIONAL_DEX_LATIAS, \ - .categoryName = _("Eon"), \ - .footprint = gMonFootprint_Latias, \ - LEARNSETS(Latias), \ - .formSpeciesIdTable = sLatiasFormSpeciesIdTable, \ - .formChangeTable = sLatiasFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_LATIAS] = { - LATIAS_MISC_INFO, .baseHP = 80, .baseAttack = 80, .baseDefense = 90, .baseSpeed = 110, .baseSpAttack = 110, .baseSpDefense = 130, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + #else + .expYield = 211, + #endif + .evYield_SpDefense = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Latias"), .cryId = CRY_LATIAS, + .natDexNum = NATIONAL_DEX_LATIAS, + .categoryName = _("Eon"), .height = 14, .weight = 400, .description = COMPOUND_STRING( @@ -7627,32 +9078,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Latias, 64, 48), + .frontPic = gMonFrontPic_Latias, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Latias, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 12, - BACK_PIC(Latias, 56, 64), + .backPic = gMonBackPic_Latias, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Latias), - ICON(Latias, 0), + .palette = gMonPalette_Latias, + .shinyPalette = gMonShinyPalette_Latias, + .iconSprite = gMonIcon_Latias, + .iconPalIndex = 0, + FOOTPRINT(Latias) + .isLegendary = TRUE, + .levelUpLearnset = sLatiasLevelUpLearnset, + .teachableLearnset = sLatiasTeachableLearnset, + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, + .formChangeTable = sLatiasFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LATIAS_MEGA] = { - LATIAS_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 110, .baseSpAttack = 140, .baseSpDefense = 150, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_SpDefense = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Latias"), .cryId = CRY_LATIAS_MEGA, + .natDexNum = NATIONAL_DEX_LATIAS, + .categoryName = _("Eon"), .height = 18, .weight = 520, .description = COMPOUND_STRING( @@ -7664,53 +9135,61 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LatiasMega, 64, 64), + .frontPic = gMonFrontPic_LatiasMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LatiasMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(LatiasMega, 64, 64), + .backPic = gMonBackPic_LatiasMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(LatiasMega), - ICON(LatiasMega, 2), + .palette = gMonPalette_LatiasMega, + .shinyPalette = gMonShinyPalette_LatiasMega, + .iconSprite = gMonIcon_LatiasMega, + .iconPalIndex = 2, + FOOTPRINT(Latias) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sLatiasLevelUpLearnset, + .teachableLearnset = sLatiasTeachableLearnset, + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, + .formChangeTable = sLatiasFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LATIAS #if P_FAMILY_LATIOS -#define LATIOS_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .isLegendary = TRUE, \ - .speciesName = _("Latios"), \ - .natDexNum = NATIONAL_DEX_LATIOS, \ - .categoryName = _("Eon"), \ - .footprint = gMonFootprint_Latios, \ - LEARNSETS(Latios), \ - .formSpeciesIdTable = sLatiosFormSpeciesIdTable, \ - .formChangeTable = sLatiosFormChangeTable - [SPECIES_LATIOS] = { - LATIOS_MISC_INFO, .baseHP = 80, .baseAttack = 90, .baseDefense = 80, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 110, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + #else + .expYield = 211, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Latios"), .cryId = CRY_LATIOS, + .natDexNum = NATIONAL_DEX_LATIOS, + .categoryName = _("Eon"), .height = 20, .weight = 600, .description = COMPOUND_STRING( @@ -7722,32 +9201,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 294, .trainerOffset = 3, - FRONT_PIC(Latios, 64, 64), + .frontPic = gMonFrontPic_Latios, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Latios, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 6, - BACK_PIC(Latios, 56, 64), + .backPic = gMonBackPic_Latios, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Latios), - ICON(Latios, 0), + .palette = gMonPalette_Latios, + .shinyPalette = gMonShinyPalette_Latios, + .iconSprite = gMonIcon_Latios, + .iconPalIndex = 0, + FOOTPRINT(Latios) + .isLegendary = TRUE, + .levelUpLearnset = sLatiosLevelUpLearnset, + .teachableLearnset = sLatiosTeachableLearnset, + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, + .formChangeTable = sLatiosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LATIOS_MEGA] = { - LATIOS_MISC_INFO, .baseHP = 80, .baseAttack = 130, .baseDefense = 100, .baseSpeed = 110, .baseSpAttack = 160, .baseSpDefense = 120, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Latios"), .cryId = CRY_LATIOS_MEGA, + .natDexNum = NATIONAL_DEX_LATIOS, + .categoryName = _("Eon"), .height = 23, .weight = 700, .description = COMPOUND_STRING( @@ -7759,53 +9258,61 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 294, .trainerOffset = 3, - FRONT_PIC(LatiosMega, 64, 64), + .frontPic = gMonFrontPic_LatiosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LatiosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(LatiosMega, 64, 64), + .backPic = gMonBackPic_LatiosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(LatiosMega), - ICON(LatiosMega, 2), + .palette = gMonPalette_LatiosMega, + .shinyPalette = gMonShinyPalette_LatiosMega, + .iconSprite = gMonIcon_LatiosMega, + .iconPalIndex = 2, + FOOTPRINT(Latios) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sLatiosLevelUpLearnset, + .teachableLearnset = sLatiosTeachableLearnset, + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, + .formChangeTable = sLatiosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LATIOS #if P_FAMILY_KYOGRE -#define KYOGRE_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 3, \ - .expYield = 302, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Kyogre"), \ - .natDexNum = NATIONAL_DEX_KYOGRE, \ - .categoryName = _("Sea Basin"), \ - .footprint = gMonFootprint_Kyogre, \ - LEARNSETS(Kyogre), \ - .formSpeciesIdTable = sKyogreFormSpeciesIdTable, \ - .formChangeTable = sKyogreFormChangeTable - [SPECIES_KYOGRE] = { - KYOGRE_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 140, - .abilities = { ABILITY_DRIZZLE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 302, + #else + .expYield = 218, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DRIZZLE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Kyogre"), .cryId = CRY_KYOGRE, + .natDexNum = NATIONAL_DEX_KYOGRE, + .categoryName = _("Sea Basin"), .height = 45, .weight = 3520, .description = COMPOUND_STRING( @@ -7817,29 +9324,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(Kyogre, 64, 64), + .frontPic = gMonFrontPic_Kyogre, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kyogre, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, .frontAnimDelay = 60, - BACK_PIC(Kyogre, 64, 32), + .backPic = gMonBackPic_Kyogre, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Kyogre), - ICON(Kyogre, 2), + .palette = gMonPalette_Kyogre, + .shinyPalette = gMonShinyPalette_Kyogre, + .iconSprite = gMonIcon_Kyogre, + .iconPalIndex = 2, + FOOTPRINT(Kyogre) + .isLegendary = TRUE, + .levelUpLearnset = sKyogreLevelUpLearnset, + .teachableLearnset = sKyogreTeachableLearnset, + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, + .formChangeTable = sKyogreFormChangeTable, }, #if P_PRIMAL_REVERSIONS [SPECIES_KYOGRE_PRIMAL] = { - KYOGRE_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 180, .baseSpDefense = 160, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 385 : 347, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRIMORDIAL_SEA, ABILITY_PRIMORDIAL_SEA }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Kyogre"), .cryId = CRY_KYOGRE_PRIMAL, + .natDexNum = NATIONAL_DEX_KYOGRE, + .categoryName = _("Sea Basin"), .height = 98, .weight = 4300, .description = COMPOUND_STRING( @@ -7851,52 +9380,60 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(KyogrePrimal, 64, 64), + .frontPic = gMonFrontPic_KyogrePrimal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyogrePrimal, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KyogrePrimal, 64, 32), + .backPic = gMonBackPic_KyogrePrimal, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(KyogrePrimal), - ICON(KyogrePrimal, 0), + .palette = gMonPalette_KyogrePrimal, + .shinyPalette = gMonShinyPalette_KyogrePrimal, + .iconSprite = gMonIcon_KyogrePrimal, + .iconPalIndex = 0, + FOOTPRINT(Kyogre) + .isLegendary = TRUE, .isPrimalReversion = TRUE, + .levelUpLearnset = sKyogreLevelUpLearnset, + .teachableLearnset = sKyogreTeachableLearnset, + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, + .formChangeTable = sKyogreFormChangeTable, }, #endif //P_PRIMAL_REVERSIONS #endif //P_FAMILY_KYOGRE #if P_FAMILY_GROUDON -#define GROUDON_MISC_INFO \ - .catchRate = 3, \ - .expYield = 302, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_RED, \ - .isLegendary = TRUE, \ - .speciesName = _("Groudon"), \ - .cryId = CRY_GROUDON, \ - .natDexNum = NATIONAL_DEX_GROUDON, \ - .categoryName = _("Continent"), \ - .footprint = gMonFootprint_Groudon, \ - LEARNSETS(Groudon), \ - .formSpeciesIdTable = sGroudonFormSpeciesIdTable, \ - .formChangeTable = sGroudonFormChangeTable - [SPECIES_GROUDON] = { - GROUDON_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 140, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_GROUND }, - .abilities = { ABILITY_DROUGHT, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 302, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DROUGHT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Groudon"), + .cryId = CRY_GROUDON, + .natDexNum = NATIONAL_DEX_GROUDON, + .categoryName = _("Continent"), .height = 35, .weight = 9500, .description = COMPOUND_STRING( @@ -7908,29 +9445,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(Groudon, 64, 64), + .frontPic = gMonFrontPic_Groudon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Groudon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Groudon, 64, 48), + .backPic = gMonBackPic_Groudon, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Groudon), - ICON(Groudon, 0), + .palette = gMonPalette_Groudon, + .shinyPalette = gMonShinyPalette_Groudon, + .iconSprite = gMonIcon_Groudon, + .iconPalIndex = 0, + FOOTPRINT(Groudon) + .isLegendary = TRUE, + .levelUpLearnset = sGroudonLevelUpLearnset, + .teachableLearnset = sGroudonTeachableLearnset, + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, + .formChangeTable = sGroudonFormChangeTable, }, #if P_PRIMAL_REVERSIONS [SPECIES_GROUDON_PRIMAL] = { - GROUDON_MISC_INFO, .baseHP = 100, .baseAttack = 180, .baseDefense = 160, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FIRE), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 385 : 347, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DESOLATE_LAND, ABILITY_DESOLATE_LAND }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Groudon"), + .cryId = CRY_GROUDON, + .natDexNum = NATIONAL_DEX_GROUDON, + .categoryName = _("Continent"), .height = 50, .weight = 9997, .description = COMPOUND_STRING( @@ -7942,7 +9501,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(GroudonPrimal, 64, 64), + .frontPic = gMonFrontPic_GroudonPrimal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GroudonPrimal, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, @@ -7950,46 +9510,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(GroudonPrimal), - ICON(GroudonPrimal, 0), + .palette = gMonPalette_GroudonPrimal, + .shinyPalette = gMonShinyPalette_GroudonPrimal, + .iconSprite = gMonIcon_GroudonPrimal, + .iconPalIndex = 0, + FOOTPRINT(Groudon) + .isLegendary = TRUE, .isPrimalReversion = TRUE, + .levelUpLearnset = sGroudonLevelUpLearnset, + .teachableLearnset = sGroudonTeachableLearnset, + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, + .formChangeTable = sGroudonFormChangeTable, }, #endif //P_PRIMAL_REVERSIONS #endif //P_FAMILY_GROUDON #if P_FAMILY_RAYQUAZA -#define RAYQUAZA_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_FLYING }, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_Attack = 2, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Rayquaza"), \ - .cryId = CRY_RAYQUAZA, \ - .natDexNum = NATIONAL_DEX_RAYQUAZA, \ - .categoryName = _("Sky High"), \ - .footprint = gMonFootprint_Rayquaza, \ - LEARNSETS(Rayquaza), \ - .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, \ - .formChangeTable = sRayquazaFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_RAYQUAZA] = { - RAYQUAZA_MISC_INFO, .baseHP = 105, .baseAttack = 150, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 150, .baseSpDefense = 90, - .abilities = { ABILITY_AIR_LOCK, ABILITY_NONE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 306, + #else + .expYield = 220, + #endif + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AIR_LOCK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rayquaza"), + .cryId = CRY_RAYQUAZA, + .natDexNum = NATIONAL_DEX_RAYQUAZA, + .categoryName = _("Sky High"), .height = 70, .weight = 2065, .description = COMPOUND_STRING( @@ -8001,30 +9567,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 448, .trainerOffset = 12, - FRONT_PIC(Rayquaza, 64, 64), + .frontPic = gMonFrontPic_Rayquaza, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rayquaza, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 60, .enemyMonElevation = 6, - BACK_PIC(Rayquaza, 64, 64), + .backPic = gMonBackPic_Rayquaza, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Rayquaza), - ICON(Rayquaza, 1), + .palette = gMonPalette_Rayquaza, + .shinyPalette = gMonShinyPalette_Rayquaza, + .iconSprite = gMonIcon_Rayquaza, + .iconPalIndex = 1, + FOOTPRINT(Rayquaza) + .isLegendary = TRUE, + .levelUpLearnset = sRayquazaLevelUpLearnset, + .teachableLearnset = sRayquazaTeachableLearnset, + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, + .formChangeTable = sRayquazaFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_RAYQUAZA_MEGA] = { - RAYQUAZA_MISC_INFO, .baseHP = 105, .baseAttack = 180, .baseDefense = 100, .baseSpeed = 115, .baseSpAttack = 180, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rayquaza"), + .cryId = CRY_RAYQUAZA, + .natDexNum = NATIONAL_DEX_RAYQUAZA, + .categoryName = _("Sky High"), .height = 108, .weight = 3920, .description = COMPOUND_STRING( @@ -8036,17 +9626,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 448, .trainerOffset = 12, - FRONT_PIC(RayquazaMega, 64, 64), + .frontPic = gMonFrontPic_RayquazaMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RayquazaMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(RayquazaMega, 64, 64), + .backPic = gMonBackPic_RayquazaMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(RayquazaMega), - ICON(RayquazaMega, 1), + .palette = gMonPalette_RayquazaMega, + .shinyPalette = gMonShinyPalette_RayquazaMega, + .iconSprite = gMonIcon_RayquazaMega, + .iconPalIndex = 1, + FOOTPRINT(Rayquaza) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sRayquazaLevelUpLearnset, + .teachableLearnset = sRayquazaTeachableLearnset, + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, + .formChangeTable = sRayquazaFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_RAYQUAZA @@ -8060,9 +9660,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_HP = 3, .itemCommon = ITEM_STAR_PIECE, .itemRare = ITEM_STAR_PIECE, @@ -8070,10 +9676,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Jirachi"), .cryId = CRY_JIRACHI, .natDexNum = NATIONAL_DEX_JIRACHI, @@ -8089,139 +9694,243 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jirachi, 56, 48), + .frontPic = gMonFrontPic_Jirachi, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Jirachi, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Jirachi, 64, 56), + .backPic = gMonBackPic_Jirachi, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Jirachi), - ICON(Jirachi, 0), - .footprint = gMonFootprint_Jirachi, - LEARNSETS(Jirachi), + .palette = gMonPalette_Jirachi, + .shinyPalette = gMonShinyPalette_Jirachi, + .iconSprite = gMonIcon_Jirachi, + .iconPalIndex = 0, + FOOTPRINT(Jirachi) + .isMythical = TRUE, + .levelUpLearnset = sJirachiLevelUpLearnset, + .teachableLearnset = sJirachiTeachableLearnset, }, #endif //P_FAMILY_JIRACHI #if P_FAMILY_DEOXYS -#define DEOXYS_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .expYield = 270, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .isMythical = TRUE, \ - .speciesName = _("Deoxys"), \ - .cryId = CRY_DEOXYS, \ - .natDexNum = NATIONAL_DEX_DEOXYS, \ - .categoryName = _("DNA"), \ - .height = 17, \ - .weight = 608, \ - .description = gDeoxysNormalPokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 290, \ - .trainerOffset = 2, \ - .footprint = gMonFootprint_Deoxys, \ - .formSpeciesIdTable = sDeoxysFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define DEOXYS_EXP_YIELD 300 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DEOXYS_EXP_YIELD 270 +#else + #define DEOXYS_EXP_YIELD 215 +#endif [SPECIES_DEOXYS_NORMAL] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 150, .baseDefense = 50, .baseSpeed = 150, .baseSpAttack = 150, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, - FRONT_PIC(DeoxysNormal, 64, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysNormal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysNormal, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysNormal, 64, 56), + .backPic = gMonBackPic_DeoxysNormal, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(DeoxysNormal), - ICON(DeoxysNormal, 0), - LEARNSETS(DeoxysNormal), + .palette = gMonPalette_DeoxysNormal, + .shinyPalette = gMonShinyPalette_DeoxysNormal, + .iconSprite = gMonIcon_DeoxysNormal, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysNormalLevelUpLearnset, + .teachableLearnset = sDeoxysNormalTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysNormalFormChangeTable, }, [SPECIES_DEOXYS_ATTACK] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 180, .baseDefense = 20, .baseSpeed = 150, .baseSpAttack = 180, .baseSpDefense = 20, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Attack = 2, .evYield_SpAttack = 1, - FRONT_PIC(DeoxysAttack, 64, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysAttack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysAttack, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysAttack, 64, 64), + .backPic = gMonBackPic_DeoxysAttack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysAttack), - ICON(DeoxysAttack, 0), - LEARNSETS(DeoxysAttack), + .palette = gMonPalette_DeoxysAttack, + .shinyPalette = gMonShinyPalette_DeoxysAttack, + .iconSprite = gMonIcon_DeoxysAttack, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysAttackLevelUpLearnset, + .teachableLearnset = sDeoxysAttackTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysAttackFormChangeTable, }, [SPECIES_DEOXYS_DEFENSE] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 70, .baseDefense = 160, .baseSpeed = 90, .baseSpAttack = 70, .baseSpDefense = 160, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Defense = 2, .evYield_SpDefense = 1, - FRONT_PIC(DeoxysDefense, 56, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysDefense, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysDefense, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysDefense, 64, 56), + .backPic = gMonBackPic_DeoxysDefense, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysDefense), - ICON(DeoxysDefense, 0), - LEARNSETS(DeoxysDefense), + .palette = gMonPalette_DeoxysDefense, + .shinyPalette = gMonShinyPalette_DeoxysDefense, + .iconSprite = gMonIcon_DeoxysDefense, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysDefenseLevelUpLearnset, + .teachableLearnset = sDeoxysDefenseTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysDefenseFormChangeTable, }, [SPECIES_DEOXYS_SPEED] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 95, .baseDefense = 90, .baseSpeed = 180, .baseSpAttack = 95, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, - FRONT_PIC(DeoxysSpeed, 64, 64), + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysSpeed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_DeoxysSpeed, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysSpeed, 64, 64), + .backPic = gMonBackPic_DeoxysSpeed, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysSpeed), - ICON(DeoxysSpeed, 0), - LEARNSETS(DeoxysSpeed), + .palette = gMonPalette_DeoxysSpeed, + .shinyPalette = gMonShinyPalette_DeoxysSpeed, + .iconSprite = gMonIcon_DeoxysSpeed, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysSpeedLevelUpLearnset, + .teachableLearnset = sDeoxysSpeedTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysSpeedFormChangeTable, }, #endif //P_FAMILY_DEOXYS diff --git a/src/data/pokemon/species_info/gen_4.h b/src/data/pokemon/species_info/gen_4_families.h similarity index 53% rename from src/data/pokemon/species_info/gen_4.h rename to src/data/pokemon/species_info/gen_4_families.h index fd2f008cd..8cdd112e7 100644 --- a/src/data/pokemon/species_info/gen_4.h +++ b/src/data/pokemon/species_info/gen_4_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 31, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 64, .evYield_Attack = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Turtwig"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Turtwig, 40, 48), + .frontPic = gMonFrontPic_Turtwig, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Turtwig, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Turtwig, 48, 56), + .backPic = gMonBackPic_Turtwig, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Turtwig), - ICON(Turtwig, 1), - .footprint = gMonFootprint_Turtwig, - LEARNSETS(Turtwig), + .palette = gMonPalette_Turtwig, + .shinyPalette = gMonShinyPalette_Turtwig, + .iconSprite = gMonIcon_Turtwig, + .iconPalIndex = 1, + FOOTPRINT(Turtwig) + .levelUpLearnset = sTurtwigLevelUpLearnset, + .teachableLearnset = sTurtwigTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_GROTLE}), }, @@ -60,16 +65,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 36, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grotle"), @@ -87,17 +92,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grotle, 56, 56), + .frontPic = gMonFrontPic_Grotle, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Grotle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Grotle, 64, 48), + .backPic = gMonBackPic_Grotle, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Grotle), - ICON(Grotle, 1), - .footprint = gMonFootprint_Grotle, - LEARNSETS(Grotle), + .palette = gMonPalette_Grotle, + .shinyPalette = gMonShinyPalette_Grotle, + .iconSprite = gMonIcon_Grotle, + .iconPalIndex = 1, + FOOTPRINT(Grotle) + .levelUpLearnset = sGrotleLevelUpLearnset, + .teachableLearnset = sGrotleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_TORTERRA}), }, @@ -109,16 +119,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 56, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif .evYield_Attack = 2, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -137,17 +153,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Torterra, 64, 64), + .frontPic = gMonFrontPic_Torterra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Torterra, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Torterra, 64, 56), + .backPic = gMonBackPic_Torterra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Torterra), - ICON(Torterra, 1), - .footprint = gMonFootprint_Torterra, - LEARNSETS(Torterra), + .palette = gMonPalette_Torterra, + .shinyPalette = gMonShinyPalette_Torterra, + .iconSprite = gMonIcon_Torterra, + .iconPalIndex = 1, + FOOTPRINT(Torterra) + .levelUpLearnset = sTorterraLevelUpLearnset, + .teachableLearnset = sTorterraTeachableLearnset, }, #endif //P_FAMILY_TURTWIG @@ -160,15 +181,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 61, .baseSpAttack = 58, .baseSpDefense = 44, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -187,17 +208,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chimchar, 32, 48), + .frontPic = gMonFrontPic_Chimchar, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Chimchar, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Chimchar, 56, 56), + .backPic = gMonBackPic_Chimchar, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chimchar), - ICON(Chimchar, 1), - .footprint = gMonFootprint_Chimchar, - LEARNSETS(Chimchar), + .palette = gMonPalette_Chimchar, + .shinyPalette = gMonShinyPalette_Chimchar, + .iconSprite = gMonIcon_Chimchar, + .iconPalIndex = 1, + FOOTPRINT(Chimchar) + .levelUpLearnset = sChimcharLevelUpLearnset, + .teachableLearnset = sChimcharTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_MONFERNO}), }, @@ -209,7 +235,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 81, .baseSpAttack = 78, .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -218,7 +244,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -237,17 +263,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Monferno, 56, 56), + .frontPic = gMonFrontPic_Monferno, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Monferno, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Monferno, 64, 64), + .backPic = gMonBackPic_Monferno, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Monferno), - ICON(Monferno, 0), - .footprint = gMonFootprint_Monferno, - LEARNSETS(Monferno), + .palette = gMonPalette_Monferno, + .shinyPalette = gMonShinyPalette_Monferno, + .iconSprite = gMonIcon_Monferno, + .iconPalIndex = 0, + FOOTPRINT(Monferno) + .levelUpLearnset = sMonfernoLevelUpLearnset, + .teachableLearnset = sMonfernoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_INFERNAPE}), }, @@ -259,9 +290,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 108, .baseSpAttack = 104, .baseSpDefense = 71, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 267, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 240, + #else + .expYield = 209, + #endif .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, @@ -269,7 +306,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Infernape"), @@ -287,17 +324,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Infernape, 64, 64), + .frontPic = gMonFrontPic_Infernape, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Infernape, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Infernape, 64, 64), + .backPic = gMonBackPic_Infernape, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Infernape), - ICON(Infernape, 0), - .footprint = gMonFootprint_Infernape, - LEARNSETS(Infernape), + .palette = gMonPalette_Infernape, + .shinyPalette = gMonShinyPalette_Infernape, + .iconSprite = gMonIcon_Infernape, + .iconPalIndex = 0, + FOOTPRINT(Infernape) + .levelUpLearnset = sInfernapeLevelUpLearnset, + .teachableLearnset = sInfernapeTeachableLearnset, }, #endif //P_FAMILY_CHIMCHAR @@ -310,20 +352,20 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 61, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Piplup"), .cryId = CRY_PIPLUP, @@ -340,17 +382,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Piplup, 24, 40), + .frontPic = gMonFrontPic_Piplup, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Piplup, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Piplup, 40, 48), + .backPic = gMonBackPic_Piplup, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Piplup), - ICON(Piplup, 0), - .footprint = gMonFootprint_Piplup, - LEARNSETS(Piplup), + .palette = gMonPalette_Piplup, + .shinyPalette = gMonShinyPalette_Piplup, + .iconSprite = gMonIcon_Piplup, + .iconPalIndex = 0, + FOOTPRINT(Piplup) + .levelUpLearnset = sPiplupLevelUpLearnset, + .teachableLearnset = sPiplupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_PRINPLUP}), }, @@ -362,20 +409,20 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 50, .baseSpAttack = 81, .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Prinplup"), .cryId = CRY_PRINPLUP, @@ -392,17 +439,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Prinplup, 48, 56), + .frontPic = gMonFrontPic_Prinplup, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Prinplup, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Prinplup, 48, 56), + .backPic = gMonBackPic_Prinplup, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Prinplup), - ICON(Prinplup, 0), - .footprint = gMonFootprint_Prinplup, - LEARNSETS(Prinplup), + .palette = gMonPalette_Prinplup, + .shinyPalette = gMonShinyPalette_Prinplup, + .iconSprite = gMonIcon_Prinplup, + .iconPalIndex = 0, + FOOTPRINT(Prinplup) + .levelUpLearnset = sPrinplupLevelUpLearnset, + .teachableLearnset = sPrinplupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMPOLEON}), }, @@ -414,20 +466,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 111, .baseSpDefense = 101, - .types = { TYPE_WATER, TYPE_STEEL }, + .types = MON_TYPES(TYPE_WATER, TYPE_STEEL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Empoleon"), .cryId = CRY_EMPOLEON, @@ -444,17 +502,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Empoleon, 64, 64), + .frontPic = gMonFrontPic_Empoleon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Empoleon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Empoleon, 64, 64), + .backPic = gMonBackPic_Empoleon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Empoleon), - ICON(Empoleon, 0), - .footprint = gMonFootprint_Empoleon, - LEARNSETS(Empoleon), + .palette = gMonPalette_Empoleon, + .shinyPalette = gMonShinyPalette_Empoleon, + .iconSprite = gMonIcon_Empoleon, + .iconPalIndex = 0, + FOOTPRINT(Empoleon) + .levelUpLearnset = sEmpoleonLevelUpLearnset, + .teachableLearnset = sEmpoleonTeachableLearnset, }, #endif //P_FAMILY_PIPLUP @@ -467,15 +530,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 56, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Starly"), @@ -493,19 +556,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Starly, 40, 40), - FRONT_PIC_FEMALE(Starly, 40, 40), + .frontPic = gMonFrontPic_Starly, + .frontPicFemale = gMonFrontPic_StarlyF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Starly, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Starly, 56, 48), - BACK_PIC_FEMALE(Starly, 56, 48), + .backPic = gMonBackPic_Starly, + .backPicFemale = gMonBackPic_StarlyF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Starly), - ICON(Starly, 0), - .footprint = gMonFootprint_Starly, - LEARNSETS(Starly), + .palette = gMonPalette_Starly, + .shinyPalette = gMonShinyPalette_Starly, + .iconSprite = gMonIcon_Starly, + .iconPalIndex = 0, + FOOTPRINT(Starly) + .levelUpLearnset = sStarlyLevelUpLearnset, + .teachableLearnset = sStarlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_STARAVIA}), }, @@ -517,15 +587,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 113, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Staravia"), @@ -543,19 +613,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staravia, 40, 48), - FRONT_PIC_FEMALE(Staravia, 40, 48), + .frontPic = gMonFrontPic_Staravia, + .frontPicFemale = gMonFrontPic_StaraviaF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Staravia, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Staravia, 64, 64), - BACK_PIC_FEMALE(Staravia, 64, 64), + .backPic = gMonBackPic_Staravia, + .backPicFemale = gMonBackPic_StaraviaF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Staravia), - ICON(Staravia, 0), - .footprint = gMonFootprint_Staravia, - LEARNSETS(Staravia), + .palette = gMonPalette_Staravia, + .shinyPalette = gMonShinyPalette_Staravia, + .iconSprite = gMonIcon_Staravia, + .iconPalIndex = 0, + FOOTPRINT(Staravia) + .levelUpLearnset = sStaraviaLevelUpLearnset, + .teachableLearnset = sStaraviaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_STARAPTOR}), }, @@ -567,15 +644,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 50, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 60 : 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 243, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 218, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 214, + #else + .expYield = 172, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Staraptor"), @@ -593,18 +678,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staraptor, 56, 64), - FRONT_PIC_FEMALE(Staraptor, 56, 64), + .frontPic = gMonFrontPic_Staraptor, + .frontPicFemale = gMonFrontPic_StaraptorF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Staraptor, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Staraptor, 64, 64), + .backPic = gMonBackPic_Staraptor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Staraptor), - ICON(Staraptor, 0), - .footprint = gMonFootprint_Staraptor, - LEARNSETS(Staraptor), + .palette = gMonPalette_Staraptor, + .shinyPalette = gMonShinyPalette_Staraptor, + .iconSprite = gMonIcon_Staraptor, + .iconPalIndex = 0, + FOOTPRINT(Staraptor) + .levelUpLearnset = sStaraptorLevelUpLearnset, + .teachableLearnset = sStaraptorTeachableLearnset, }, #endif //P_FAMILY_STARLY @@ -617,15 +708,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 31, .baseSpAttack = 35, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 58, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bidoof"), @@ -643,19 +734,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bidoof, 40, 40), - FRONT_PIC_FEMALE(Bidoof, 40, 40), + .frontPic = gMonFrontPic_Bidoof, + .frontPicFemale = gMonFrontPic_BidoofF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bidoof, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Bidoof, 64, 40), - BACK_PIC_FEMALE(Bidoof, 64, 40), + .backPic = gMonBackPic_Bidoof, + .backPicFemale = gMonBackPic_BidoofF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Bidoof), - ICON(Bidoof, 2), - .footprint = gMonFootprint_Bidoof, - LEARNSETS(Bidoof), + .palette = gMonPalette_Bidoof, + .shinyPalette = gMonShinyPalette_Bidoof, + .iconSprite = gMonIcon_Bidoof, + .iconPalIndex = 2, + FOOTPRINT(Bidoof) + .levelUpLearnset = sBidoofLevelUpLearnset, + .teachableLearnset = sBidoofTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_BIBAREL}), }, @@ -667,15 +765,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 71, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_WATER }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_WATER), .catchRate = 127, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 116, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bibarel"), @@ -693,18 +791,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Bibarel, 56, 48), - FRONT_PIC_FEMALE(Bibarel, 56, 48), + .frontPic = gMonFrontPic_Bibarel, + .frontPicFemale = gMonFrontPic_BibarelF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Bibarel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Bibarel, 64, 56), + .backPic = gMonBackPic_Bibarel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Bibarel), - ICON(Bibarel, 2), - .footprint = gMonFootprint_Bibarel, - LEARNSETS(Bibarel), + .palette = gMonPalette_Bibarel, + .shinyPalette = gMonShinyPalette_Bibarel, + .iconSprite = gMonIcon_Bibarel, + .iconPalIndex = 2, + FOOTPRINT(Bibarel) + .levelUpLearnset = sBibarelLevelUpLearnset, + .teachableLearnset = sBibarelTeachableLearnset, }, #endif //P_FAMILY_BIDOOF @@ -717,16 +821,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 25, .baseSpAttack = 25, .baseSpDefense = 41, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 54, .evYield_Defense = 1, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Kricketot"), @@ -744,19 +848,27 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kricketot, 48, 48), - FRONT_PIC_FEMALE(Kricketot, 48, 48), + .frontPic = gMonFrontPic_Kricketot, + .frontPicFemale = gMonFrontPic_KricketotF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Kricketot, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Kricketot, 48, 56), - BACK_PIC_FEMALE(Kricketot, 48, 56), + .backPic = gMonBackPic_Kricketot, + .backPicFemale = gMonBackPic_KricketotF, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Kricketot), - ICON(Kricketot, 2), - .footprint = gMonFootprint_Kricketot, - LEARNSETS(Kricketot), + .palette = gMonPalette_Kricketot, + .shinyPalette = gMonShinyPalette_Kricketot, + .iconSprite = gMonIcon_Kricketot, + .iconPalIndex = 2, + FOOTPRINT(Kricketot) + .tmIlliterate = TRUE, + .levelUpLearnset = sKricketotLevelUpLearnset, + .teachableLearnset = sKricketotTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_KRICKETUNE}), }, @@ -768,16 +880,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 51, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 45, - .expYield = 134, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 134 : 159, .evYield_Attack = 2, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Kricketune"), @@ -795,19 +907,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Kricketune, 56, 56), - FRONT_PIC_FEMALE(Kricketune, 56, 56), + .frontPic = gMonFrontPic_Kricketune, + .frontPicFemale = gMonFrontPic_KricketuneF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Kricketune, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Kricketune, 56, 64), - BACK_PIC_FEMALE(Kricketune, 56, 64), + .backPic = gMonBackPic_Kricketune, + .backPicFemale = gMonBackPic_KricketuneF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Kricketune), - ICON(Kricketune, 2), - .footprint = gMonFootprint_Kricketune, - LEARNSETS(Kricketune), + .palette = gMonPalette_Kricketune, + .shinyPalette = gMonShinyPalette_Kricketune, + .iconSprite = gMonIcon_Kricketune, + .iconPalIndex = 2, + FOOTPRINT(Kricketune) + .levelUpLearnset = sKricketuneLevelUpLearnset, + .teachableLearnset = sKricketuneTeachableLearnset, }, #endif //P_FAMILY_KRICKETOT @@ -820,15 +939,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 45, .baseSpAttack = 40, .baseSpDefense = 34, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 235, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 60, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Shinx"), @@ -846,19 +965,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shinx, 48, 40), - FRONT_PIC_FEMALE(Shinx, 48, 40), + .frontPic = gMonFrontPic_Shinx, + .frontPicFemale = gMonFrontPic_ShinxF, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shinx, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shinx, 64, 48), - BACK_PIC_FEMALE(Shinx, 64, 48), + .backPic = gMonBackPic_Shinx, + .backPicFemale = gMonBackPic_ShinxF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Shinx), - ICON(Shinx, 0), - .footprint = gMonFootprint_Shinx, - LEARNSETS(Shinx), + .palette = gMonPalette_Shinx, + .shinyPalette = gMonShinyPalette_Shinx, + .iconSprite = gMonIcon_Shinx, + .iconPalIndex = 0, + FOOTPRINT(Shinx) + .levelUpLearnset = sShinxLevelUpLearnset, + .teachableLearnset = sShinxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_LUXIO}), }, @@ -870,15 +996,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 49, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 127 : 117, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Luxio"), @@ -896,19 +1022,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Luxio, 48, 48), - FRONT_PIC_FEMALE(Luxio, 48, 48), + .frontPic = gMonFrontPic_Luxio, + .frontPicFemale = gMonFrontPic_LuxioF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Luxio, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Luxio, 64, 64), - BACK_PIC_FEMALE(Luxio, 64, 64), + .backPic = gMonBackPic_Luxio, + .backPicFemale = gMonBackPic_LuxioF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Luxio), - ICON(Luxio, 0), - .footprint = gMonFootprint_Luxio, - LEARNSETS(Luxio), + .palette = gMonPalette_Luxio, + .shinyPalette = gMonShinyPalette_Luxio, + .iconSprite = gMonIcon_Luxio, + .iconPalIndex = 0, + FOOTPRINT(Luxio) + .levelUpLearnset = sLuxioLevelUpLearnset, + .teachableLearnset = sLuxioTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_LUXRAY}), }, @@ -920,15 +1053,21 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 79, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 262, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 235, + #else + .expYield = 194, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Luxray"), @@ -946,19 +1085,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Luxray, 64, 64), - FRONT_PIC_FEMALE(Luxray, 64, 64), + .frontPic = gMonFrontPic_Luxray, + .frontPicFemale = gMonFrontPic_LuxrayF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Luxray, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Luxray, 64, 64), - BACK_PIC_FEMALE(Luxray, 64, 64), + .backPic = gMonBackPic_Luxray, + .backPicFemale = gMonBackPic_LuxrayF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Luxray), - ICON(Luxray, 0), - .footprint = gMonFootprint_Luxray, - LEARNSETS(Luxray), + .palette = gMonPalette_Luxray, + .shinyPalette = gMonShinyPalette_Luxray, + .iconSprite = gMonIcon_Luxray, + .iconPalIndex = 0, + FOOTPRINT(Luxray) + .levelUpLearnset = sLuxrayLevelUpLearnset, + .teachableLearnset = sLuxrayTeachableLearnset, }, #endif //P_FAMILY_SHINX @@ -971,15 +1117,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 58, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 99, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Cranidos"), @@ -997,17 +1143,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cranidos, 48, 48), + .frontPic = gMonFrontPic_Cranidos, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cranidos, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cranidos, 64, 56), + .backPic = gMonBackPic_Cranidos, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Cranidos), - ICON(Cranidos, 0), - .footprint = gMonFootprint_Cranidos, - LEARNSETS(Cranidos), + .palette = gMonPalette_Cranidos, + .shinyPalette = gMonShinyPalette_Cranidos, + .iconSprite = gMonIcon_Cranidos, + .iconPalIndex = 0, + FOOTPRINT(Cranidos) + .levelUpLearnset = sCranidosLevelUpLearnset, + .teachableLearnset = sCranidosTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_RAMPARDOS}), }, @@ -1019,15 +1170,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Rampardos"), @@ -1045,17 +1196,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Rampardos, 64, 64), + .frontPic = gMonFrontPic_Rampardos, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rampardos, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Rampardos, 64, 64), + .backPic = gMonBackPic_Rampardos, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rampardos), - ICON(Rampardos, 0), - .footprint = gMonFootprint_Rampardos, - LEARNSETS(Rampardos), + .palette = gMonPalette_Rampardos, + .shinyPalette = gMonShinyPalette_Rampardos, + .iconSprite = gMonIcon_Rampardos, + .iconPalIndex = 0, + FOOTPRINT(Rampardos) + .levelUpLearnset = sRampardosLevelUpLearnset, + .teachableLearnset = sRampardosTeachableLearnset, }, #endif //P_FAMILY_CRANIDOS @@ -1068,15 +1224,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 30, .baseSpAttack = 42, .baseSpDefense = 88, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 45, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 99, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Shieldon"), @@ -1094,17 +1250,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shieldon, 40, 40), + .frontPic = gMonFrontPic_Shieldon, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Shieldon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Shieldon, 56, 48), + .backPic = gMonBackPic_Shieldon, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shieldon), - ICON(Shieldon, 1), - .footprint = gMonFootprint_Shieldon, - LEARNSETS(Shieldon), + .palette = gMonPalette_Shieldon, + .shinyPalette = gMonShinyPalette_Shieldon, + .iconSprite = gMonIcon_Shieldon, + .iconPalIndex = 1, + FOOTPRINT(Shieldon) + .levelUpLearnset = sShieldonLevelUpLearnset, + .teachableLearnset = sShieldonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_BASTIODON}), }, @@ -1116,15 +1277,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 30, .baseSpAttack = 47, .baseSpDefense = 138, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Bastiodon"), @@ -1142,265 +1303,421 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bastiodon, 64, 56), + .frontPic = gMonFrontPic_Bastiodon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Bastiodon, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Bastiodon, 64, 56), + .backPic = gMonBackPic_Bastiodon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bastiodon), - ICON(Bastiodon, 1), - .footprint = gMonFootprint_Bastiodon, - LEARNSETS(Bastiodon), + .palette = gMonPalette_Bastiodon, + .shinyPalette = gMonShinyPalette_Bastiodon, + .iconSprite = gMonIcon_Bastiodon, + .iconPalIndex = 1, + FOOTPRINT(Bastiodon) + .levelUpLearnset = sBastiodonLevelUpLearnset, + .teachableLearnset = sBastiodonTeachableLearnset, }, #endif //P_FAMILY_SHIELDON #if P_FAMILY_BURMY -#define BURMY_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 29, \ - .baseDefense = 45, \ - .baseSpeed = 36, \ - .baseSpAttack = 29, \ - .baseSpDefense = 45, \ - .types = { TYPE_BUG, TYPE_BUG }, \ - .catchRate = 120, \ - .expYield = 45, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, \ - .speciesName = _("Burmy"), \ - .cryId = CRY_BURMY, \ - .natDexNum = NATIONAL_DEX_BURMY, \ - .categoryName = _("Bagworm"), \ - .height = 2, \ - .weight = 34, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Burmy, \ - .frontAnimId = ANIM_V_STRETCH, \ - .enemyMonElevation = 10, \ - .backAnimId = BACK_ANIM_H_SHAKE, \ - .footprint = gMonFootprint_Burmy, \ - LEARNSETS(Burmy), \ - .formSpeciesIdTable = sBurmyFormSpeciesIdTable, \ - .formChangeTable = sBurmyFormChangeTable - [SPECIES_BURMY_PLANT_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "If its cloak is even slightly damaged, it\n" "will immediately repair it with whatever is\n" "near at hand. The Pokémon within the cloak\n" "is scrawny and vulnerable to the cold."), - FRONT_PIC(BurmyPlantCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmyPlantCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 13, - BACK_PIC(BurmyPlantCloak, 40, 56), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmyPlantCloak, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 6, - PALETTES(BurmyPlantCloak), - ICON(BurmyPlantCloak, 1), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmyPlantCloak, + .shinyPalette = gMonShinyPalette_BurmyPlantCloak, + .iconSprite = gMonIcon_BurmyPlantCloak, + .iconPalIndex = 1, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_PLANT_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_PLANT_CLOAK}), }, [SPECIES_BURMY_SANDY_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "It weaves a cloak together with sand, mud,\n" "and silk it spits out. This earthen cloak\n" "is ruined by wind and rain, so the Pokémon\n" "hides away in caves and other such places."), - FRONT_PIC(BurmySandyCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmySandyCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 12, - BACK_PIC(BurmySandyCloak, 32, 56), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmySandyCloak, + .backPicSize = MON_COORDS_SIZE(32, 56), .backPicYOffset = 7, - PALETTES(BurmySandyCloak), - ICON(BurmySandyCloak, 1), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmySandyCloak, + .shinyPalette = gMonShinyPalette_BurmySandyCloak, + .iconSprite = gMonIcon_BurmySandyCloak, + .iconPalIndex = 1, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_SANDY_CLOAK}), }, [SPECIES_BURMY_TRASH_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "When confronted by a lack of other\n" "materials, Burmy will create its cloak\n" "using dust and refuse. The cloak seems to\n" "be more comfortable than one would think."), - FRONT_PIC(BurmyTrashCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmyTrashCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 8, - BACK_PIC(BurmyTrashCloak, 40, 64), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmyTrashCloak, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, - PALETTES(BurmyTrashCloak), - ICON(BurmyTrashCloak, 0), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmyTrashCloak, + .shinyPalette = gMonShinyPalette_BurmyTrashCloak, + .iconSprite = gMonIcon_BurmyTrashCloak, + .iconPalIndex = 0, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_TRASH_CLOAK}), }, -#define WORMADAM_MISC_INFO \ - .catchRate = 45, \ - .expYield = 148, \ - .itemRare = ITEM_SILVER_POWDER, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, \ - .speciesName = _("Wormadam"), \ - .cryId = CRY_WORMADAM, \ - .natDexNum = NATIONAL_DEX_WORMADAM, \ - .categoryName = _("Bagworm"), \ - .height = 5, \ - .weight = 65, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Wormadam, \ - .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, \ - .enemyMonElevation = 8, \ - .backPicYOffset = 2, \ - .backAnimId = BACK_ANIM_V_SHAKE, \ - .footprint = gMonFootprint_Wormadam, \ - .formSpeciesIdTable = sWormadamFormSpeciesIdTable - [SPECIES_WORMADAM_PLANT_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 59, .baseDefense = 85, .baseSpeed = 36, .baseSpAttack = 79, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_SpDefense = 2, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its appearance changes depending\n" "on where Burmy evolved. The materials\n" "on hand become a part of its body.\n" "The cloak is never shed."), - FRONT_PIC(WormadamPlantCloak, 48, 56), - BACK_PIC(WormadamPlantCloak, 56, 64), - PALETTES(WormadamPlantCloak), - ICON(WormadamPlantCloak, 1), - LEARNSETS(WormadamPlantCloak), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WormadamPlantCloak, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamPlantCloak, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamPlantCloak, + .shinyPalette = gMonShinyPalette_WormadamPlantCloak, + .iconSprite = gMonIcon_WormadamPlantCloak, + .iconPalIndex = 1, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamPlantCloakLevelUpLearnset, + .teachableLearnset = sWormadamPlantCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, [SPECIES_WORMADAM_SANDY_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 79, .baseDefense = 105, .baseSpeed = 36, .baseSpAttack = 59, .baseSpDefense = 85, - .types = { TYPE_BUG, TYPE_GROUND }, + .types = MON_TYPES(TYPE_BUG, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_Defense = 2, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its earthen skin is reasonably hard, it has\n" "no problem repelling a Starly's pecking.\n" "It is said that a Wormadam that evolves\n" "on a cold day will have a thicker cloak."), - FRONT_PIC(WormadamSandyCloak, 40, 56), - BACK_PIC(WormadamSandyCloak, 56, 64), - PALETTES(WormadamSandyCloak), - ICON(WormadamSandyCloak, 1), - LEARNSETS(WormadamSandyCloak), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WormadamSandyCloak, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamSandyCloak, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamSandyCloak, + .shinyPalette = gMonShinyPalette_WormadamSandyCloak, + .iconSprite = gMonIcon_WormadamSandyCloak, + .iconPalIndex = 1, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamSandyCloakLevelUpLearnset, + .teachableLearnset = sWormadamSandyCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, [SPECIES_WORMADAM_TRASH_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 69, .baseDefense = 95, .baseSpeed = 36, .baseSpAttack = 69, .baseSpDefense = 95, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_Defense = 1, .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its body, composed of refuse, blends in to\n" "the scenery enough to be inconspicuous.\n" "This seems to be the perfect way for it to\n" "evade the detection of predators."), - FRONT_PIC(WormadamTrashCloak, 48, 56), - BACK_PIC(WormadamTrashCloak, 64, 64), - PALETTES(WormadamTrashCloak), - ICON(WormadamTrashCloak, 0), - LEARNSETS(WormadamTrashCloak), - }, - - [SPECIES_MOTHIM] = - { - .baseHP = 70, - .baseAttack = 94, - .baseDefense = 50, - .baseSpeed = 66, - .baseSpAttack = 94, - .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, - .catchRate = 45, - .expYield = 148, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_SILVER_POWDER, - .genderRatio = MON_MALE, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, - .bodyColor = BODY_COLOR_YELLOW, - .speciesName = _("Mothim"), - .cryId = CRY_MOTHIM, - .natDexNum = NATIONAL_DEX_MOTHIM, - .categoryName = _("Moth"), - .height = 9, - .weight = 233, - .description = COMPOUND_STRING( - "It does not keep a nest. While it\n" - "loves floral honey, it won't gather\n" - "any itself. Instead, it plots to steal\n" - "honey collected by Combee."), - .pokemonScale = 338, - .pokemonOffset = 8, + .pokemonScale = 432, + .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mothim, 64, 64), - .frontPicYOffset = 12, - .frontAnimFrames = sAnims_Mothim, - .frontAnimId = ANIM_H_SLIDE_WOBBLE, - .enemyMonElevation = 10, - BACK_PIC(Mothim, 64, 56), - .backPicYOffset = 8, - .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Mothim), - ICON(Mothim, 0), - .footprint = gMonFootprint_Mothim, - LEARNSETS(Mothim), + .frontPic = gMonFrontPic_WormadamTrashCloak, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamTrashCloak, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamTrashCloak, + .shinyPalette = gMonShinyPalette_WormadamTrashCloak, + .iconSprite = gMonIcon_WormadamTrashCloak, + .iconPalIndex = 0, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamTrashCloakLevelUpLearnset, + .teachableLearnset = sWormadamTrashCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, + +#define MOTHIM_SPECIES_INFO \ + { \ + .baseHP = 70, \ + .baseAttack = 94, \ + .baseDefense = 50, \ + .baseSpeed = 66, \ + .baseSpAttack = 94, \ + .baseSpDefense = 50, \ + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), \ + .catchRate = 45, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .itemRare = ITEM_SILVER_POWDER, \ + .genderRatio = MON_MALE, \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .speciesName = _("Mothim"), \ + .cryId = CRY_MOTHIM, \ + .natDexNum = NATIONAL_DEX_MOTHIM, \ + .categoryName = _("Moth"), \ + .height = 9, \ + .weight = 233, \ + .description = gMothimPokedexText, \ + .pokemonScale = 338, \ + .pokemonOffset = 8, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Mothim, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 12, \ + .frontAnimFrames = sAnims_Mothim, \ + .frontAnimId = ANIM_H_SLIDE_WOBBLE, \ + .enemyMonElevation = 10, \ + .backPic = gMonBackPic_Mothim, \ + .backPicSize = MON_COORDS_SIZE(64, 56), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_H_SHAKE, \ + .palette = gMonPalette_Mothim, \ + .shinyPalette = gMonShinyPalette_Mothim, \ + .iconSprite = gMonIcon_Mothim, \ + .iconPalIndex = 0, \ + FOOTPRINT(Mothim) \ + .levelUpLearnset = sMothimLevelUpLearnset, \ + .teachableLearnset = sMothimTeachableLearnset, \ + .formSpeciesIdTable = sMothimFormSpeciesIdTable, \ + } + + [SPECIES_MOTHIM_PLANT_CLOAK] = MOTHIM_SPECIES_INFO, + [SPECIES_MOTHIM_SANDY_CLOAK] = MOTHIM_SPECIES_INFO, + [SPECIES_MOTHIM_TRASH_CLOAK] = MOTHIM_SPECIES_INFO, #endif //P_FAMILY_BURMY #if P_FAMILY_COMBEE @@ -1412,16 +1729,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 30, .baseSpDefense = 42, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 120, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 63, .evYield_Speed = 1, .itemRare = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HONEY_GATHER, ABILITY_NONE, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Combee"), @@ -1439,19 +1756,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Combee, 64, 40), + .frontPic = gMonFrontPic_Combee, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Combee, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Combee, 64, 48), + .backPic = gMonBackPic_Combee, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 22, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Combee), - PALETTE_FEMALE(Combee), - ICON(Combee, 0), - .footprint = gMonFootprint_Combee, - LEARNSETS(Combee), + .palette = gMonPalette_Combee, + .paletteFemale = gMonPalette_CombeeF, + .shinyPalette = gMonShinyPalette_Combee, + .shinyPaletteFemale = gMonShinyPalette_CombeeF, + .iconSprite = gMonIcon_Combee, + .iconPalIndex = 0, + FOOTPRINT(Combee) + .tmIlliterate = TRUE, + .levelUpLearnset = sCombeeLevelUpLearnset, + .teachableLearnset = sCombeeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 21, SPECIES_VESPIQUEN}), }, @@ -1463,9 +1787,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 80, .baseSpDefense = 102, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 188, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemRare = ITEM_POISON_BARB, @@ -1473,7 +1797,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Vespiquen"), @@ -1491,18 +1815,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vespiquen, 48, 56), + .frontPic = gMonFrontPic_Vespiquen, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Vespiquen, .frontAnimId = ANIM_LUNGE_GROW, .enemyMonElevation = 4, - BACK_PIC(Vespiquen, 64, 64), + .backPic = gMonBackPic_Vespiquen, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Vespiquen), - ICON(Vespiquen, 0), - .footprint = gMonFootprint_Vespiquen, - LEARNSETS(Vespiquen), + .palette = gMonPalette_Vespiquen, + .shinyPalette = gMonShinyPalette_Vespiquen, + .iconSprite = gMonIcon_Vespiquen, + .iconPalIndex = 0, + FOOTPRINT(Vespiquen) + .levelUpLearnset = sVespiquenLevelUpLearnset, + .teachableLearnset = sVespiquenTeachableLearnset, }, #endif //P_FAMILY_COMBEE @@ -1515,15 +1844,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_VOLT_ABSORB }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pachirisu"), @@ -1541,18 +1870,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pachirisu, 48, 56), - FRONT_PIC_FEMALE(Pachirisu, 48, 56), + .frontPic = gMonFrontPic_Pachirisu, + .frontPicFemale = gMonFrontPic_PachirisuF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pachirisu, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pachirisu, 64, 64), + .backPic = gMonBackPic_Pachirisu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Pachirisu), - ICON(Pachirisu, 0), - .footprint = gMonFootprint_Pachirisu, - LEARNSETS(Pachirisu), + .palette = gMonPalette_Pachirisu, + .shinyPalette = gMonShinyPalette_Pachirisu, + .iconSprite = gMonIcon_Pachirisu, + .iconPalIndex = 0, + FOOTPRINT(Pachirisu) + .levelUpLearnset = sPachirisuLevelUpLearnset, + .teachableLearnset = sPachirisuTeachableLearnset, }, #endif //P_FAMILY_PACHIRISU @@ -1565,15 +1900,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 75, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Buizel"), @@ -1591,18 +1926,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Buizel, 56, 48), + .frontPic = gMonFrontPic_Buizel, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Buizel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Buizel, 64, 48), - BACK_PIC_FEMALE(Buizel, 64, 48), + .backPic = gMonBackPic_Buizel, + .backPicFemale = gMonBackPic_BuizelF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Buizel), - ICON(Buizel, 0), - .footprint = gMonFootprint_Buizel, - LEARNSETS(Buizel), + .palette = gMonPalette_Buizel, + .shinyPalette = gMonShinyPalette_Buizel, + .iconSprite = gMonIcon_Buizel, + .iconPalIndex = 0, + FOOTPRINT(Buizel) + .levelUpLearnset = sBuizelLevelUpLearnset, + .teachableLearnset = sBuizelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_FLOATZEL}), }, @@ -1614,15 +1955,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 115, .baseSpAttack = 85, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 178, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Floatzel"), @@ -1640,18 +1981,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Floatzel, 64, 64), + .frontPic = gMonFrontPic_Floatzel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Floatzel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Floatzel, 64, 64), - BACK_PIC_FEMALE(Floatzel, 64, 64), + .backPic = gMonBackPic_Floatzel, + .backPicFemale = gMonBackPic_FloatzelF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Floatzel), - ICON(Floatzel, 0), - .footprint = gMonFootprint_Floatzel, - LEARNSETS(Floatzel), + .palette = gMonPalette_Floatzel, + .shinyPalette = gMonShinyPalette_Floatzel, + .iconSprite = gMonIcon_Floatzel, + .iconPalIndex = 0, + FOOTPRINT(Floatzel) + .levelUpLearnset = sFloatzelLevelUpLearnset, + .teachableLearnset = sFloatzelTeachableLearnset, }, #endif //P_FAMILY_BUIZEL @@ -1664,17 +2011,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 35, .baseSpAttack = 62, .baseSpDefense = 53, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 68, .evYield_SpAttack = 1, .itemRare = ITEM_MIRACLE_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Cherubi"), .cryId = CRY_CHERUBI, @@ -1691,228 +2038,349 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cherubi, 40, 32), + .frontPic = gMonFrontPic_Cherubi, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Cherubi, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cherubi, 48, 40), + .backPic = gMonBackPic_Cherubi, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Cherubi), - ICON(Cherubi, 1), - .footprint = gMonFootprint_Cherubi, - LEARNSETS(Cherubi), + .palette = gMonPalette_Cherubi, + .shinyPalette = gMonShinyPalette_Cherubi, + .iconSprite = gMonIcon_Cherubi, + .iconPalIndex = 1, + FOOTPRINT(Cherubi) + .levelUpLearnset = sCherubiLevelUpLearnset, + .teachableLearnset = sCherubiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_CHERRIM_OVERCAST}), }, -#define CHERRIM_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 60, \ - .baseDefense = 70, \ - .baseSpeed = 85, \ - .baseSpAttack = 87, \ - .baseSpDefense = 78, \ - .types = { TYPE_GRASS, TYPE_GRASS }, \ - .catchRate = 75, \ - .expYield = 158, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_MIRACLE_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, \ - .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE }, \ - .speciesName = _("Cherrim"), \ - .cryId = CRY_CHERRIM, \ - .natDexNum = NATIONAL_DEX_CHERRIM, \ - .categoryName = _("Blossom"), \ - .height = 5, \ - .weight = 93, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Cherrim, \ - LEARNSETS(Cherrim), \ - .formSpeciesIdTable = sCherrimFormSpeciesIdTable, \ - .formChangeTable = sCherrimFormChangeTable - [SPECIES_CHERRIM_OVERCAST] = { - CHERRIM_MISC_INFO, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 85, + .baseSpAttack = 87, + .baseSpDefense = 78, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 133, + .evYield_SpAttack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Cherrim"), + .cryId = CRY_CHERRIM, + .natDexNum = NATIONAL_DEX_CHERRIM, + .categoryName = _("Blossom"), + .height = 5, + .weight = 93, .description = COMPOUND_STRING( "It's motionless, save for the occasional\n" "quiver. A rich array of Pokémon can be\n" "found gathered around it, drawn by the\n" "scent exuded from Cherrim's folded petals."), - FRONT_PIC(CherrimOvercast, 32, 48), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CherrimOvercast, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_CherrimOvercast, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(CherrimOvercast, 40, 56), + .backPic = gMonBackPic_CherrimOvercast, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(CherrimOvercast), - ICON(CherrimOvercast, 0), + .palette = gMonPalette_CherrimOvercast, + .shinyPalette = gMonShinyPalette_CherrimOvercast, + .iconSprite = gMonIcon_CherrimOvercast, + .iconPalIndex = 0, + FOOTPRINT(Cherrim) + .levelUpLearnset = sCherrimLevelUpLearnset, + .teachableLearnset = sCherrimTeachableLearnset, + .formSpeciesIdTable = sCherrimFormSpeciesIdTable, + .formChangeTable = sCherrimFormChangeTable, }, [SPECIES_CHERRIM_SUNSHINE] = { - CHERRIM_MISC_INFO, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 85, + .baseSpAttack = 87, + .baseSpDefense = 78, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 133, + .evYield_SpAttack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Cherrim"), + .cryId = CRY_CHERRIM, + .natDexNum = NATIONAL_DEX_CHERRIM, + .categoryName = _("Blossom"), + .height = 5, + .weight = 93, .description = COMPOUND_STRING( "Cherrim takes this form on sunny days.\n" "Its faint scent entices bug Pokémon to it.\n" "It immediately closes its petals and\n" "becomes immobile once the sun hides."), - FRONT_PIC(CherrimSunshine, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CherrimSunshine, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_CherrimSunshine, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(CherrimSunshine, 64, 56), + .backPic = gMonBackPic_CherrimSunshine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(CherrimSunshine), - ICON(CherrimSunshine, 1), + .palette = gMonPalette_CherrimSunshine, + .shinyPalette = gMonShinyPalette_CherrimSunshine, + .iconSprite = gMonIcon_CherrimSunshine, + .iconPalIndex = 1, + FOOTPRINT(Cherrim) + .levelUpLearnset = sCherrimLevelUpLearnset, + .teachableLearnset = sCherrimTeachableLearnset, + .formSpeciesIdTable = sCherrimFormSpeciesIdTable, + .formChangeTable = sCherrimFormChangeTable, }, #endif //P_FAMILY_CHERUBI #if P_FAMILY_SHELLOS -#define SHELLOS_MISC_INFO \ - .baseHP = 76, \ - .baseAttack = 48, \ - .baseDefense = 48, \ - .baseSpeed = 34, \ - .baseSpAttack = 57, \ - .baseSpDefense = 62, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 190, \ - .expYield = 65, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, \ - .speciesName = _("Shellos"), \ - .cryId = CRY_SHELLOS, \ - .natDexNum = NATIONAL_DEX_SHELLOS, \ - .categoryName = _("Sea Slug"), \ - .height = 3, \ - .weight = 63, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Shellos, \ - .frontAnimId = ANIM_V_STRETCH, \ - .backPicYOffset = 8, \ - .backAnimId = BACK_ANIM_H_SPRING, \ - .footprint = gMonFootprint_Shellos, \ - LEARNSETS(Shellos), \ - .formSpeciesIdTable = sShellosFormSpeciesIdTable - [SPECIES_SHELLOS_WEST_SEA] = { - SHELLOS_MISC_INFO, + .baseHP = 76, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 34, + .baseSpAttack = 57, + .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 73, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Shellos"), + .cryId = CRY_SHELLOS, + .natDexNum = NATIONAL_DEX_SHELLOS, + .categoryName = _("Sea Slug"), + .height = 3, + .weight = 63, .description = COMPOUND_STRING( "It oozes a purple fluid to deter enemies.\n" "While harmless, the fluid is awfully sticky.\n" "Apparently, there are more West Sea\n" "Shellos now than there were in the past."), - FRONT_PIC(ShellosWestSea, 40, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ShellosWestSea, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, - BACK_PIC(ShellosWestSea, 40, 56), - PALETTES(ShellosWestSea), - ICON(ShellosWestSea, 0), + .frontAnimFrames = sAnims_Shellos, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_ShellosWestSea, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SPRING, + .palette = gMonPalette_ShellosWestSea, + .shinyPalette = gMonShinyPalette_ShellosWestSea, + .iconSprite = gMonIcon_ShellosWestSea, + .iconPalIndex = 0, + FOOTPRINT(Shellos) + .levelUpLearnset = sShellosLevelUpLearnset, + .teachableLearnset = sShellosTeachableLearnset, + .formSpeciesIdTable = sShellosFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_WEST_SEA}), }, [SPECIES_SHELLOS_EAST_SEA] = { - SHELLOS_MISC_INFO, + .baseHP = 76, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 34, + .baseSpAttack = 57, + .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 73, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Shellos"), + .cryId = CRY_SHELLOS, + .natDexNum = NATIONAL_DEX_SHELLOS, + .categoryName = _("Sea Slug"), + .height = 3, + .weight = 63, .description = COMPOUND_STRING( "It's capable of spending a limited amount\n" "of time on land until their skin dries out.\n" "One theory suggests that living in cold\n" "seas causes Shellos to take on this form."), - FRONT_PIC(ShellosEastSea, 40, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ShellosEastSea, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, - BACK_PIC(ShellosEastSea, 56, 48), - PALETTES(ShellosEastSea), - ICON(ShellosEastSea, 0), + .frontAnimFrames = sAnims_Shellos, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_ShellosEastSea, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SPRING, + .palette = gMonPalette_ShellosEastSea, + .shinyPalette = gMonShinyPalette_ShellosEastSea, + .iconSprite = gMonIcon_ShellosEastSea, + .iconPalIndex = 0, + FOOTPRINT(Shellos) + .levelUpLearnset = sShellosLevelUpLearnset, + .teachableLearnset = sShellosTeachableLearnset, + .formSpeciesIdTable = sShellosFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_EAST_SEA}), }, -#define GASTRODON_MISC_INFO \ - .baseHP = 111, \ - .baseAttack = 83, \ - .baseDefense = 68, \ - .baseSpeed = 39, \ - .baseSpAttack = 92, \ - .baseSpDefense = 82, \ - .types = { TYPE_WATER, TYPE_GROUND }, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, \ - .speciesName = _("Gastrodon"), \ - .cryId = CRY_GASTRODON, \ - .natDexNum = NATIONAL_DEX_GASTRODON, \ - .categoryName = _("Sea Slug"), \ - .height = 9, \ - .weight = 299, \ - .pokemonScale = 338, \ - .pokemonOffset = 8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 8, \ - .frontAnimFrames = sAnims_Gastrodon, \ - .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, \ - .backPicYOffset = 3, \ - .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - .footprint = gMonFootprint_Gastrodon, \ - LEARNSETS(Gastrodon), \ - .formSpeciesIdTable = sGastrodonFormSpeciesIdTable - [SPECIES_GASTRODON_WEST_SEA] = { - GASTRODON_MISC_INFO, + .baseHP = 111, + .baseAttack = 83, + .baseDefense = 68, + .baseSpeed = 39, + .baseSpAttack = 92, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gastrodon"), + .cryId = CRY_GASTRODON, + .natDexNum = NATIONAL_DEX_GASTRODON, + .categoryName = _("Sea Slug"), + .height = 9, + .weight = 299, .description = COMPOUND_STRING( "It appears on shallow-water beaches to\n" "eat sand for nourishment. Should one\n" "Gastrodon encounter another of a\n" "different color, a fierce battle will ensue."), - FRONT_PIC(GastrodonWestSea, 48, 48), - BACK_PIC(GastrodonWestSea, 56, 64), - PALETTES(GastrodonWestSea), - ICON(GastrodonWestSea, 0), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GastrodonWestSea, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Gastrodon, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .backPic = gMonBackPic_GastrodonWestSea, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_GastrodonWestSea, + .shinyPalette = gMonShinyPalette_GastrodonWestSea, + .iconSprite = gMonIcon_GastrodonWestSea, + .iconPalIndex = 0, + FOOTPRINT(Gastrodon) + .levelUpLearnset = sGastrodonLevelUpLearnset, + .teachableLearnset = sGastrodonTeachableLearnset, + .formSpeciesIdTable = sGastrodonFormSpeciesIdTable, }, [SPECIES_GASTRODON_EAST_SEA] = { - GASTRODON_MISC_INFO, + .baseHP = 111, + .baseAttack = 83, + .baseDefense = 68, + .baseSpeed = 39, + .baseSpAttack = 92, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gastrodon"), + .cryId = CRY_GASTRODON, + .natDexNum = NATIONAL_DEX_GASTRODON, + .categoryName = _("Sea Slug"), + .height = 9, + .weight = 299, .description = COMPOUND_STRING( "Found more often on land than in the sea.\n" "They normally live in rocky seashores, but\n" "when cloudy or rainy, they can sometimes\n" "be found on mountains, far from the sea."), - FRONT_PIC(GastrodonEastSea, 56, 48), - BACK_PIC(GastrodonEastSea, 56, 64), - PALETTES(GastrodonEastSea), - ICON(GastrodonEastSea, 0), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GastrodonEastSea, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Gastrodon, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .backPic = gMonBackPic_GastrodonEastSea, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_GastrodonEastSea, + .shinyPalette = gMonShinyPalette_GastrodonEastSea, + .iconSprite = gMonIcon_GastrodonEastSea, + .iconPalIndex = 0, + FOOTPRINT(Gastrodon) + .levelUpLearnset = sGastrodonLevelUpLearnset, + .teachableLearnset = sGastrodonTeachableLearnset, + .formSpeciesIdTable = sGastrodonFormSpeciesIdTable, }, #endif //P_FAMILY_SHELLOS @@ -1925,15 +2393,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 44, - .types = { TYPE_GHOST, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), .catchRate = 125, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 127, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drifloon"), @@ -1951,18 +2419,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drifloon, 32, 56), + .frontPic = gMonFrontPic_Drifloon, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drifloon, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 5, - BACK_PIC(Drifloon, 40, 64), + .backPic = gMonBackPic_Drifloon, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Drifloon), - ICON(Drifloon, 2), - .footprint = gMonFootprint_Drifloon, - LEARNSETS(Drifloon), + .palette = gMonPalette_Drifloon, + .shinyPalette = gMonShinyPalette_Drifloon, + .iconSprite = gMonIcon_Drifloon, + .iconPalIndex = 2, + FOOTPRINT(Drifloon) + .levelUpLearnset = sDrifloonLevelUpLearnset, + .teachableLearnset = sDrifloonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_DRIFBLIM}), }, @@ -1974,15 +2447,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 54, - .types = { TYPE_GHOST, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), .catchRate = 60, - .expYield = 174, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 174 : 204, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drifblim"), @@ -2000,18 +2473,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drifblim, 56, 56), + .frontPic = gMonFrontPic_Drifblim, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drifblim, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Drifblim, 64, 64), + .backPic = gMonBackPic_Drifblim, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Drifblim), - ICON(Drifblim, 2), - .footprint = gMonFootprint_Drifblim, - LEARNSETS(Drifblim), + .palette = gMonPalette_Drifblim, + .shinyPalette = gMonShinyPalette_Drifblim, + .iconSprite = gMonIcon_Drifblim, + .iconPalIndex = 2, + FOOTPRINT(Drifblim) + .levelUpLearnset = sDrifblimLevelUpLearnset, + .teachableLearnset = sDrifblimTeachableLearnset, }, #endif //P_FAMILY_DRIFLOON @@ -2024,15 +2502,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 44, .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 84, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 0, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_RUN_AWAY, ABILITY_KLUTZ, ABILITY_LIMBER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Buneary"), @@ -2050,50 +2528,48 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Buneary, 32, 64), + .frontPic = gMonFrontPic_Buneary, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Buneary, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Buneary, 64, 64), + .backPic = gMonBackPic_Buneary, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Buneary), - ICON(Buneary, 2), - .footprint = gMonFootprint_Buneary, - LEARNSETS(Buneary), + .palette = gMonPalette_Buneary, + .shinyPalette = gMonShinyPalette_Buneary, + .iconSprite = gMonIcon_Buneary, + .iconPalIndex = 2, + FOOTPRINT(Buneary) + .levelUpLearnset = sBunearyLevelUpLearnset, + .teachableLearnset = sBunearyTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LOPUNNY}), }, -#define LOPUNNY_MISC_INFO \ - .catchRate = 60, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 140, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Lopunny"), \ - .natDexNum = NATIONAL_DEX_LOPUNNY, \ - .categoryName = _("Rabbit"), \ - .footprint = gMonFootprint_Lopunny, \ - LEARNSETS(Lopunny), \ - .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, \ - .formChangeTable = sLopunnyFormChangeTable - [SPECIES_LOPUNNY] = { - LOPUNNY_MISC_INFO, .baseHP = 65, .baseAttack = 76, .baseDefense = 84, .baseSpeed = 105, .baseSpAttack = 54, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .expYield = 168, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 178, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 140, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_CUTE_CHARM, ABILITY_KLUTZ, ABILITY_LIMBER }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lopunny"), .cryId = CRY_LOPUNNY, + .natDexNum = NATIONAL_DEX_LOPUNNY, + .categoryName = _("Rabbit"), .height = 12, .weight = 333, .description = COMPOUND_STRING( @@ -2105,31 +2581,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lopunny, 56, 56), + .frontPic = gMonFrontPic_Lopunny, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Lopunny, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Lopunny, 64, 56), + .backPic = gMonBackPic_Lopunny, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Lopunny), - ICON(Lopunny, 2), + .palette = gMonPalette_Lopunny, + .shinyPalette = gMonShinyPalette_Lopunny, + .iconSprite = gMonIcon_Lopunny, + .iconPalIndex = 2, + FOOTPRINT(Lopunny) + .levelUpLearnset = sLopunnyLevelUpLearnset, + .teachableLearnset = sLopunnyTeachableLearnset, + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, + .formChangeTable = sLopunnyFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LOPUNNY_MEGA] = { - LOPUNNY_MISC_INFO, .baseHP = 65, .baseAttack = 136, .baseDefense = 94, .baseSpeed = 135, .baseSpAttack = 54, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), + .catchRate = 60, .expYield = 203, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 140, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SCRAPPY, ABILITY_SCRAPPY, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lopunny"), .cryId = CRY_LOPUNNY_MEGA, + .natDexNum = NATIONAL_DEX_LOPUNNY, + .categoryName = _("Rabbit"), .height = 13, .weight = 283, .description = COMPOUND_STRING( @@ -2141,16 +2636,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LopunnyMega, 56, 64), + .frontPic = gMonFrontPic_LopunnyMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_LopunnyMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LopunnyMega, 64, 64), + .backPic = gMonBackPic_LopunnyMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(LopunnyMega), - ICON(LopunnyMega, 2), + .palette = gMonPalette_LopunnyMega, + .shinyPalette = gMonShinyPalette_LopunnyMega, + .iconSprite = gMonIcon_LopunnyMega, + .iconPalIndex = 2, + FOOTPRINT(Lopunny) .isMegaEvolution = TRUE, + .levelUpLearnset = sLopunnyLevelUpLearnset, + .teachableLearnset = sLopunnyTeachableLearnset, + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, + .formChangeTable = sLopunnyFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BUNEARY @@ -2164,15 +2668,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 42, .baseSpDefense = 37, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 71, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Glameow"), @@ -2190,17 +2694,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glameow, 56, 56), + .frontPic = gMonFrontPic_Glameow, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Glameow, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Glameow, 64, 56), + .backPic = gMonBackPic_Glameow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Glameow), - ICON(Glameow, 0), - .footprint = gMonFootprint_Glameow, - LEARNSETS(Glameow), + .palette = gMonPalette_Glameow, + .shinyPalette = gMonShinyPalette_Glameow, + .iconSprite = gMonIcon_Glameow, + .iconPalIndex = 0, + FOOTPRINT(Glameow) + .levelUpLearnset = sGlameowLevelUpLearnset, + .teachableLearnset = sGlameowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PURUGLY}), }, @@ -2212,15 +2721,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 112, .baseSpAttack = 64, .baseSpDefense = 59, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 183, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Purugly"), @@ -2238,17 +2747,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Purugly, 64, 56), + .frontPic = gMonFrontPic_Purugly, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Purugly, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Purugly, 64, 48), + .backPic = gMonBackPic_Purugly, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Purugly), - ICON(Purugly, 0), - .footprint = gMonFootprint_Purugly, - LEARNSETS(Purugly), + .palette = gMonPalette_Purugly, + .shinyPalette = gMonShinyPalette_Purugly, + .iconSprite = gMonIcon_Purugly, + .iconPalIndex = 0, + FOOTPRINT(Purugly) + .levelUpLearnset = sPuruglyLevelUpLearnset, + .teachableLearnset = sPuruglyTeachableLearnset, }, #endif //P_FAMILY_GLAMEOW @@ -2261,15 +2775,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 74, .baseSpAttack = 41, .baseSpDefense = 41, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 225, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 79, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Stunky"), @@ -2287,17 +2801,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stunky, 56, 48), + .frontPic = gMonFrontPic_Stunky, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Stunky, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Stunky, 64, 64), + .backPic = gMonBackPic_Stunky, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Stunky), - ICON(Stunky, 2), - .footprint = gMonFootprint_Stunky, - LEARNSETS(Stunky), + .palette = gMonPalette_Stunky, + .shinyPalette = gMonShinyPalette_Stunky, + .iconSprite = gMonIcon_Stunky, + .iconPalIndex = 2, + FOOTPRINT(Stunky) + .levelUpLearnset = sStunkyLevelUpLearnset, + .teachableLearnset = sStunkyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SKUNTANK}), }, @@ -2309,15 +2828,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 84, .baseSpAttack = 71, .baseSpDefense = 61, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 60, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 209, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Skuntank"), @@ -2335,17 +2854,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Skuntank, 64, 56), + .frontPic = gMonFrontPic_Skuntank, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Skuntank, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Skuntank, 64, 64), + .backPic = gMonBackPic_Skuntank, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Skuntank), - ICON(Skuntank, 2), - .footprint = gMonFootprint_Skuntank, - LEARNSETS(Skuntank), + .palette = gMonPalette_Skuntank, + .shinyPalette = gMonShinyPalette_Skuntank, + .iconSprite = gMonIcon_Skuntank, + .iconPalIndex = 2, + FOOTPRINT(Skuntank) + .levelUpLearnset = sSkuntankLevelUpLearnset, + .teachableLearnset = sSkuntankTeachableLearnset, }, #endif //P_FAMILY_STUNKY @@ -2358,16 +2882,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 23, .baseSpAttack = 24, .baseSpDefense = 86, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 72, .evYield_Defense = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bronzor"), @@ -2385,18 +2909,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bronzor, 32, 40), + .frontPic = gMonFrontPic_Bronzor, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Bronzor, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 9, - BACK_PIC(Bronzor, 40, 48), + .backPic = gMonBackPic_Bronzor, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Bronzor), - ICON(Bronzor, 0), - .footprint = gMonFootprint_Bronzor, - LEARNSETS(Bronzor), + .palette = gMonPalette_Bronzor, + .shinyPalette = gMonShinyPalette_Bronzor, + .iconSprite = gMonIcon_Bronzor, + .iconPalIndex = 0, + FOOTPRINT(Bronzor) + .levelUpLearnset = sBronzorLevelUpLearnset, + .teachableLearnset = sBronzorTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_BRONZONG}), }, @@ -2408,9 +2937,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 33, .baseSpAttack = 79, .baseSpDefense = 116, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 188, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemRare = ITEM_METAL_COAT, @@ -2418,7 +2947,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bronzong"), @@ -2436,18 +2965,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bronzong, 56, 56), + .frontPic = gMonFrontPic_Bronzong, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Bronzong, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 7, - BACK_PIC(Bronzong, 64, 56), + .backPic = gMonBackPic_Bronzong, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bronzong), - ICON(Bronzong, 0), - .footprint = gMonFootprint_Bronzong, - LEARNSETS(Bronzong), + .palette = gMonPalette_Bronzong, + .shinyPalette = gMonShinyPalette_Bronzong, + .iconSprite = gMonIcon_Bronzong, + .iconPalIndex = 0, + FOOTPRINT(Bronzong) + .levelUpLearnset = sBronzongLevelUpLearnset, + .teachableLearnset = sBronzongTeachableLearnset, }, #endif //P_FAMILY_BRONZOR @@ -2460,16 +2994,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 91, .baseSpAttack = 92, .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 30, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 107, .evYield_Attack = 1, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Chatot"), @@ -2487,17 +3021,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chatot, 40, 48), + .frontPic = gMonFrontPic_Chatot, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chatot, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Chatot, 48, 48), + .backPic = gMonBackPic_Chatot, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Chatot), - ICON(Chatot, 0), - .footprint = gMonFootprint_Chatot, - LEARNSETS(Chatot), + .palette = gMonPalette_Chatot, + .shinyPalette = gMonShinyPalette_Chatot, + .iconSprite = gMonIcon_Chatot, + .iconPalIndex = 0, + FOOTPRINT(Chatot) + .levelUpLearnset = sChatotLevelUpLearnset, + .teachableLearnset = sChatotTeachableLearnset, }, #endif //P_FAMILY_CHATOT @@ -2510,16 +3049,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 35, .baseSpAttack = 92, .baseSpDefense = 108, - .types = { TYPE_GHOST, TYPE_DARK }, + .types = MON_TYPES(TYPE_GHOST, TYPE_DARK), .catchRate = 100, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 168, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Spiritomb"), @@ -2537,17 +3076,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Spiritomb, 56, 56), + .frontPic = gMonFrontPic_Spiritomb, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Spiritomb, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Spiritomb, 64, 56), + .backPic = gMonBackPic_Spiritomb, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Spiritomb), - ICON(Spiritomb, 5), - .footprint = gMonFootprint_Spiritomb, - LEARNSETS(Spiritomb), + .palette = gMonPalette_Spiritomb, + .shinyPalette = gMonShinyPalette_Spiritomb, + .iconSprite = gMonIcon_Spiritomb, + .iconPalIndex = 5, + FOOTPRINT(Spiritomb) + .levelUpLearnset = sSpiritombLevelUpLearnset, + .teachableLearnset = sSpiritombTeachableLearnset, }, #endif //P_FAMILY_SPIRITOMB @@ -2560,15 +3104,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 42, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gible"), @@ -2586,19 +3130,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gible, 48, 48), - FRONT_PIC_FEMALE(Gible, 48, 48), + .frontPic = gMonFrontPic_Gible, + .frontPicFemale = gMonFrontPic_GibleF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Gible, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gible, 56, 48), - BACK_PIC_FEMALE(Gible, 56, 48), + .backPic = gMonBackPic_Gible, + .backPicFemale = gMonBackPic_GibleF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Gible), - ICON(Gible, 0), - .footprint = gMonFootprint_Gible, - LEARNSETS(Gible), + .palette = gMonPalette_Gible, + .shinyPalette = gMonShinyPalette_Gible, + .iconSprite = gMonIcon_Gible, + .iconPalIndex = 0, + FOOTPRINT(Gible) + .levelUpLearnset = sGibleLevelUpLearnset, + .teachableLearnset = sGibleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GABITE}), }, @@ -2610,7 +3161,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 82, .baseSpAttack = 50, .baseSpDefense = 55, - .types = { TYPE_DRAGON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -2618,7 +3169,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gabite"), @@ -2636,103 +3187,145 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Gabite, 64, 64), - FRONT_PIC_FEMALE(Gabite, 64, 64), + .frontPic = gMonFrontPic_Gabite, + .frontPicFemale = gMonFrontPic_GabiteF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gabite, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Gabite, 64, 64), - BACK_PIC_FEMALE(Gabite, 64, 64), + .backPic = gMonBackPic_Gabite, + .backPicFemale = gMonBackPic_GabiteF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Gabite), - ICON(Gabite, 0), - .footprint = gMonFootprint_Gabite, - LEARNSETS(Gabite), + .palette = gMonPalette_Gabite, + .shinyPalette = gMonShinyPalette_Gabite, + .iconSprite = gMonIcon_Gabite, + .iconPalIndex = 0, + FOOTPRINT(Gabite) + .levelUpLearnset = sGabiteLevelUpLearnset, + .teachableLearnset = sGabiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_GARCHOMP}), }, -#define GARCHOMP_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_GROUND }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Garchomp"), \ - .natDexNum = NATIONAL_DEX_GARCHOMP, \ - .categoryName = _("Mach"), \ - .height = 19, \ - .weight = 950, \ - .pokemonScale = 256, \ - .pokemonOffset = 1, \ - .trainerScale = 326, \ - .trainerOffset = 4, \ - .footprint = gMonFootprint_Garchomp, \ - LEARNSETS(Garchomp), \ - .formSpeciesIdTable = sGarchompFormSpeciesIdTable, \ - .formChangeTable = sGarchompFormChangeTable - [SPECIES_GARCHOMP] = { - GARCHOMP_MISC_INFO, .baseHP = 108, .baseAttack = 130, .baseDefense = 95, .baseSpeed = 102, .baseSpAttack = 80, .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Garchomp"), .cryId = CRY_GARCHOMP, + .natDexNum = NATIONAL_DEX_GARCHOMP, + .categoryName = _("Mach"), + .height = 19, + .weight = 950, .description = COMPOUND_STRING( "When it folds up its body and extends its\n" "wings, it looks like a jet plane. It is\n" "covered in fine scales that reduce drag,\n" "enabling it to fly at high speeds."), - FRONT_PIC(Garchomp, 64, 64), - FRONT_PIC_FEMALE(Garchomp, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_Garchomp, + .frontPicFemale = gMonFrontPic_GarchompF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Garchomp, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Garchomp, 64, 56), + .backPic = gMonBackPic_Garchomp, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Garchomp), - ICON(Garchomp, 0), + .palette = gMonPalette_Garchomp, + .shinyPalette = gMonShinyPalette_Garchomp, + .iconSprite = gMonIcon_Garchomp, + .iconPalIndex = 0, + FOOTPRINT(Garchomp) + .levelUpLearnset = sGarchompLevelUpLearnset, + .teachableLearnset = sGarchompTeachableLearnset, + .formSpeciesIdTable = sGarchompFormSpeciesIdTable, + .formChangeTable = sGarchompFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GARCHOMP_MEGA] = { - GARCHOMP_MISC_INFO, .baseHP = 108, .baseAttack = 170, .baseDefense = 115, .baseSpeed = 92, .baseSpAttack = 120, .baseSpDefense = 95, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Garchomp"), .cryId = CRY_GARCHOMP_MEGA, + .natDexNum = NATIONAL_DEX_GARCHOMP, + .categoryName = _("Mach"), + .height = 19, + .weight = 950, .description = COMPOUND_STRING( "Excess energy melted its arms and wings\n" "into giant scythes, sending it mad with\n" "rage. It swings its scythes wildly and\n" "slices the ground to pieces."), - FRONT_PIC(GarchompMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_GarchompMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GarchompMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GarchompMega, 64, 56), + .backPic = gMonBackPic_GarchompMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(GarchompMega), - ICON(GarchompMega, 0), + .palette = gMonPalette_GarchompMega, + .shinyPalette = gMonShinyPalette_GarchompMega, + .iconSprite = gMonIcon_GarchompMega, + .iconPalIndex = 0, + FOOTPRINT(Garchomp) .isMegaEvolution = TRUE, + .levelUpLearnset = sGarchompLevelUpLearnset, + .teachableLearnset = sGarchompTeachableLearnset, + .formSpeciesIdTable = sGarchompFormSpeciesIdTable, + .formChangeTable = sGarchompFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_GIBLE @@ -2746,15 +3339,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 35, .baseSpDefense = 40, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 72, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Riolu"), @@ -2772,51 +3365,49 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Riolu, 48, 48), + .frontPic = gMonFrontPic_Riolu, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Riolu, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Riolu, 64, 64), + .backPic = gMonBackPic_Riolu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Riolu), - ICON(Riolu, 2), - .footprint = gMonFootprint_Riolu, - LEARNSETS(Riolu), + .palette = gMonPalette_Riolu, + .shinyPalette = gMonShinyPalette_Riolu, + .iconSprite = gMonIcon_Riolu, + .iconPalIndex = 2, + FOOTPRINT(Riolu) + .levelUpLearnset = sRioluLevelUpLearnset, + .teachableLearnset = sRioluTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_LUCARIO}), }, -#define LUCARIO_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_STEEL }, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Lucario"), \ - .natDexNum = NATIONAL_DEX_LUCARIO, \ - .categoryName = _("Aura"), \ - .footprint = gMonFootprint_Lucario, \ - LEARNSETS(Lucario), \ - .formSpeciesIdTable = sLucarioFormSpeciesIdTable, \ - .formChangeTable = sLucarioFormChangeTable - [SPECIES_LUCARIO] = { - LUCARIO_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 70, .baseSpeed = 90, .baseSpAttack = 115, .baseSpDefense = 70, - .expYield = 184, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 204, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lucario"), .cryId = CRY_LUCARIO, + .natDexNum = NATIONAL_DEX_LUCARIO, + .categoryName = _("Aura"), .height = 12, .weight = 540, .description = COMPOUND_STRING( @@ -2828,30 +3419,51 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lucario, 48, 56), + .frontPic = gMonFrontPic_Lucario, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lucario, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lucario, 64, 64), + .backPic = gMonBackPic_Lucario, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Lucario), - ICON(Lucario, 2), + .palette = gMonPalette_Lucario, + .shinyPalette = gMonShinyPalette_Lucario, + .iconSprite = gMonIcon_Lucario, + .iconPalIndex = 2, + FOOTPRINT(Lucario) + .levelUpLearnset = sLucarioLevelUpLearnset, + .teachableLearnset = sLucarioTeachableLearnset, + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, + .formChangeTable = sLucarioFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LUCARIO_MEGA] = { - LUCARIO_MISC_INFO, .baseHP = 70, .baseAttack = 145, .baseDefense = 88, .baseSpeed = 112, .baseSpAttack = 140, .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 45, .expYield = 219, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lucario"), .cryId = CRY_LUCARIO_MEGA, + .natDexNum = NATIONAL_DEX_LUCARIO, + .categoryName = _("Aura"), .height = 13, .weight = 575, .description = COMPOUND_STRING( @@ -2863,16 +3475,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LucarioMega, 48, 64), + .frontPic = gMonFrontPic_LucarioMega, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_LucarioMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LucarioMega, 64, 64), + .backPic = gMonBackPic_LucarioMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(LucarioMega), - ICON(LucarioMega, 2), + .palette = gMonPalette_LucarioMega, + .shinyPalette = gMonShinyPalette_LucarioMega, + .iconSprite = gMonIcon_LucarioMega, + .iconPalIndex = 2, + FOOTPRINT(Lucario) .isMegaEvolution = TRUE, + .levelUpLearnset = sLucarioLevelUpLearnset, + .teachableLearnset = sLucarioTeachableLearnset, + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, + .formChangeTable = sLucarioFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_RIOLU @@ -2886,15 +3507,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 32, .baseSpAttack = 38, .baseSpDefense = 42, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 140, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 95, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hippopotas"), @@ -2912,21 +3533,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 11, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hippopotas, 64, 40), + .frontPic = gMonFrontPic_Hippopotas, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hippopotas, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Hippopotas, 64, 40), + .backPic = gMonBackPic_Hippopotas, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Hippopotas), - PALETTE_FEMALE(Hippopotas), - ICON(Hippopotas, 1), + .palette = gMonPalette_Hippopotas, + .paletteFemale = gMonPalette_HippopotasF, + .shinyPalette = gMonShinyPalette_Hippopotas, + .shinyPaletteFemale = gMonShinyPalette_HippopotasF, + .iconSprite = gMonIcon_Hippopotas, + .iconPalIndex = 1, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Hippopotas, 1), + .iconSpriteFemale = gMonIcon_HippopotasF, + .iconPalIndexFemale = 1, #endif - .footprint = gMonFootprint_Hippopotas, - LEARNSETS(Hippopotas), + FOOTPRINT(Hippopotas) + .levelUpLearnset = sHippopotasLevelUpLearnset, + .teachableLearnset = sHippopotasTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_HIPPOWDON}), }, @@ -2938,15 +3566,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 47, .baseSpAttack = 68, .baseSpDefense = 72, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hippowdon"), @@ -2964,21 +3592,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Hippowdon, 64, 56), + .frontPic = gMonFrontPic_Hippowdon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Hippowdon, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Hippowdon, 64, 56), + .backPic = gMonBackPic_Hippowdon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Hippowdon), - PALETTE_FEMALE(Hippowdon), - ICON(Hippowdon, 1), + .palette = gMonPalette_Hippowdon, + .paletteFemale = gMonPalette_HippowdonF, + .shinyPalette = gMonShinyPalette_Hippowdon, + .shinyPaletteFemale = gMonShinyPalette_HippowdonF, + .iconSprite = gMonIcon_Hippowdon, + .iconPalIndex = 1, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Hippowdon, 1), + .iconSpriteFemale = gMonIcon_HippowdonF, + .iconPalIndexFemale = 1, #endif - .footprint = gMonFootprint_Hippowdon, - LEARNSETS(Hippowdon), + FOOTPRINT(Hippowdon) + .levelUpLearnset = sHippowdonLevelUpLearnset, + .teachableLearnset = sHippowdonTeachableLearnset, }, #endif //P_FAMILY_HIPPOPOTAS @@ -2991,16 +3626,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_BUG }, + .types = MON_TYPES(TYPE_POISON, TYPE_BUG), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 114, .evYield_Defense = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Skorupi"), @@ -3018,17 +3653,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Skorupi, 48, 48), + .frontPic = gMonFrontPic_Skorupi, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Skorupi, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Skorupi, 64, 56), + .backPic = gMonBackPic_Skorupi, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Skorupi), - ICON(Skorupi, 0), - .footprint = gMonFootprint_Skorupi, - LEARNSETS(Skorupi), + .palette = gMonPalette_Skorupi, + .shinyPalette = gMonShinyPalette_Skorupi, + .iconSprite = gMonIcon_Skorupi, + .iconPalIndex = 0, + FOOTPRINT(Skorupi) + .levelUpLearnset = sSkorupiLevelUpLearnset, + .teachableLearnset = sSkorupiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_DRAPION}), }, @@ -3040,16 +3680,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 45, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 204, .evYield_Defense = 2, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drapion"), @@ -3067,17 +3707,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drapion, 64, 56), + .frontPic = gMonFrontPic_Drapion, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Drapion, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Drapion, 64, 56), + .backPic = gMonBackPic_Drapion, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Drapion), - ICON(Drapion, 2), - .footprint = gMonFootprint_Drapion, - LEARNSETS(Drapion), + .palette = gMonPalette_Drapion, + .shinyPalette = gMonShinyPalette_Drapion, + .iconSprite = gMonIcon_Drapion, + .iconPalIndex = 2, + FOOTPRINT(Drapion) + .levelUpLearnset = sDrapionLevelUpLearnset, + .teachableLearnset = sDrapionTeachableLearnset, }, #endif //P_FAMILY_SKORUPI @@ -3090,16 +3735,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 50, .baseSpAttack = 61, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 140, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 83, .evYield_Attack = 1, .itemRare = ITEM_BLACK_SLUDGE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Croagunk"), @@ -3117,19 +3762,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Croagunk, 40, 48), - FRONT_PIC_FEMALE(Croagunk, 40, 48), + .frontPic = gMonFrontPic_Croagunk, + .frontPicFemale = gMonFrontPic_CroagunkF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Croagunk, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Croagunk, 56, 56), - BACK_PIC_FEMALE(Croagunk, 56, 56), + .backPic = gMonBackPic_Croagunk, + .backPicFemale = gMonBackPic_CroagunkF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW, - PALETTES(Croagunk), - ICON(Croagunk, 0), - .footprint = gMonFootprint_Croagunk, - LEARNSETS(Croagunk), + .palette = gMonPalette_Croagunk, + .shinyPalette = gMonShinyPalette_Croagunk, + .iconSprite = gMonIcon_Croagunk, + .iconPalIndex = 0, + FOOTPRINT(Croagunk) + .levelUpLearnset = sCroagunkLevelUpLearnset, + .teachableLearnset = sCroagunkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_TOXICROAK}), }, @@ -3141,16 +3793,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 86, .baseSpDefense = 65, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 75, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 181, .evYield_Attack = 2, .itemRare = ITEM_BLACK_SLUDGE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Toxicroak"), @@ -3168,19 +3820,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxicroak, 56, 56), - FRONT_PIC_FEMALE(Toxicroak, 56, 56), + .frontPic = gMonFrontPic_Toxicroak, + .frontPicFemale = gMonFrontPic_ToxicroakF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Toxicroak, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toxicroak, 56, 56), - BACK_PIC_FEMALE(Toxicroak, 56, 56), + .backPic = gMonBackPic_Toxicroak, + .backPicFemale = gMonBackPic_ToxicroakF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Toxicroak), - ICON(Toxicroak, 0), - .footprint = gMonFootprint_Toxicroak, - LEARNSETS(Toxicroak), + .palette = gMonPalette_Toxicroak, + .shinyPalette = gMonShinyPalette_Toxicroak, + .iconSprite = gMonIcon_Toxicroak, + .iconPalIndex = 0, + FOOTPRINT(Toxicroak) + .levelUpLearnset = sToxicroakLevelUpLearnset, + .teachableLearnset = sToxicroakTeachableLearnset, }, #endif //P_FAMILY_CROAGUNK @@ -3193,16 +3852,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 46, .baseSpAttack = 90, .baseSpDefense = 72, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 200, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 164, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Carnivine"), .cryId = CRY_CARNIVINE, @@ -3219,18 +3878,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Carnivine, 64, 48), + .frontPic = gMonFrontPic_Carnivine, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Carnivine, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 8, - BACK_PIC(Carnivine, 64, 56), + .backPic = gMonBackPic_Carnivine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Carnivine), - ICON(Carnivine, 1), - .footprint = gMonFootprint_Carnivine, - LEARNSETS(Carnivine), + .palette = gMonPalette_Carnivine, + .shinyPalette = gMonShinyPalette_Carnivine, + .iconSprite = gMonIcon_Carnivine, + .iconPalIndex = 1, + FOOTPRINT(Carnivine) + .levelUpLearnset = sCarnivineLevelUpLearnset, + .teachableLearnset = sCarnivineTeachableLearnset, }, #endif //P_FAMILY_CARNIVINE @@ -3243,15 +3907,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 66, .baseSpAttack = 49, .baseSpDefense = 61, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 90, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Finneon"), @@ -3269,19 +3933,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Finneon, 32, 40), - FRONT_PIC_FEMALE(Finneon, 32, 40), + .frontPic = gMonFrontPic_Finneon, + .frontPicFemale = gMonFrontPic_FinneonF, + .frontPicSize = MON_COORDS_SIZE(32, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Finneon, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Finneon, 56, 40), - BACK_PIC_FEMALE(Finneon, 56, 40), + .backPic = gMonBackPic_Finneon, + .backPicFemale = gMonBackPic_FinneonF, + .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Finneon), - ICON(Finneon, 0), - .footprint = gMonFootprint_Finneon, - LEARNSETS(Finneon), + .palette = gMonPalette_Finneon, + .shinyPalette = gMonShinyPalette_Finneon, + .iconSprite = gMonIcon_Finneon, + .iconPalIndex = 0, + FOOTPRINT(Finneon) + .levelUpLearnset = sFinneonLevelUpLearnset, + .teachableLearnset = sFinneonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_LUMINEON}), }, @@ -3293,15 +3964,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 91, .baseSpAttack = 69, .baseSpDefense = 86, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 156, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Lumineon"), @@ -3319,19 +3990,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lumineon, 56, 56), - FRONT_PIC_FEMALE(Lumineon, 56, 56), + .frontPic = gMonFrontPic_Lumineon, + .frontPicFemale = gMonFrontPic_LumineonF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Lumineon, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Lumineon, 56, 64), - BACK_PIC_FEMALE(Lumineon, 56, 64), + .backPic = gMonBackPic_Lumineon, + .backPicFemale = gMonBackPic_LumineonF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Lumineon), - ICON(Lumineon, 0), - .footprint = gMonFootprint_Lumineon, - LEARNSETS(Lumineon), + .palette = gMonPalette_Lumineon, + .shinyPalette = gMonShinyPalette_Lumineon, + .iconSprite = gMonIcon_Lumineon, + .iconPalIndex = 0, + FOOTPRINT(Lumineon) + .levelUpLearnset = sLumineonLevelUpLearnset, + .teachableLearnset = sLumineonTeachableLearnset, }, #endif //P_FAMILY_FINNEON @@ -3344,16 +4022,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 62, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_ICE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), .catchRate = 120, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 131, .evYield_Attack = 1, .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Snover"), @@ -3371,54 +4049,54 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Snover, 64, 48), - FRONT_PIC_FEMALE(Snover, 64, 48), + .frontPic = gMonFrontPic_Snover, + .frontPicFemale = gMonFrontPic_SnoverF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Snover, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Snover, 64, 56), - BACK_PIC_FEMALE(Snover, 64, 56), + .backPic = gMonBackPic_Snover, + .backPicFemale = gMonBackPic_SnoverF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Snover), - ICON(Snover, 1), - .footprint = gMonFootprint_Snover, - LEARNSETS(Snover), + .palette = gMonPalette_Snover, + .shinyPalette = gMonShinyPalette_Snover, + .iconSprite = gMonIcon_Snover, + .iconPalIndex = 1, + FOOTPRINT(Snover) + .levelUpLearnset = sSnoverLevelUpLearnset, + .teachableLearnset = sSnoverTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ABOMASNOW}), }, -#define ABOMASNOW_MISC_INFO \ - .types = { TYPE_GRASS, TYPE_ICE }, \ - .catchRate = 60, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .itemRare = ITEM_NEVER_MELT_ICE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS },\ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Abomasnow"), \ - .natDexNum = NATIONAL_DEX_ABOMASNOW, \ - .categoryName = _("Frost Tree"), \ - .footprint = gMonFootprint_Abomasnow, \ - LEARNSETS(Abomasnow), \ - .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, \ - .formChangeTable = sAbomasnowFormChangeTable - [SPECIES_ABOMASNOW] = { - ABOMASNOW_MISC_INFO, .baseHP = 90, .baseAttack = 92, .baseDefense = 75, .baseSpeed = 60, .baseSpAttack = 92, .baseSpDefense = 85, - .expYield = 173, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 214, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Abomasnow"), .cryId = CRY_ABOMASNOW, + .natDexNum = NATIONAL_DEX_ABOMASNOW, + .categoryName = _("Frost Tree"), .height = 22, .weight = 1355, .description = COMPOUND_STRING( @@ -3430,31 +4108,54 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Abomasnow, 64, 64), - FRONT_PIC_FEMALE(Abomasnow, 64, 64), + .frontPic = gMonFrontPic_Abomasnow, + .frontPicFemale = gMonFrontPic_AbomasnowF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Abomasnow, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Abomasnow, 64, 56), + .backPic = gMonBackPic_Abomasnow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Abomasnow), - ICON(Abomasnow, 1), + .palette = gMonPalette_Abomasnow, + .shinyPalette = gMonShinyPalette_Abomasnow, + .iconSprite = gMonIcon_Abomasnow, + .iconPalIndex = 1, + FOOTPRINT(Abomasnow) + .levelUpLearnset = sAbomasnowLevelUpLearnset, + .teachableLearnset = sAbomasnowTeachableLearnset, + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, + .formChangeTable = sAbomasnowFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ABOMASNOW_MEGA] = { - ABOMASNOW_MISC_INFO, .baseHP = 90, .baseAttack = 132, .baseDefense = 105, .baseSpeed = 30, .baseSpAttack = 132, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), + .catchRate = 60, .expYield = 208, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Abomasnow"), .cryId = CRY_ABOMASNOW_MEGA, + .natDexNum = NATIONAL_DEX_ABOMASNOW, + .categoryName = _("Frost Tree"), .height = 27, .weight = 1850, .description = COMPOUND_STRING( @@ -3466,194 +4167,374 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(AbomasnowMega, 64, 64), + .frontPic = gMonFrontPic_AbomasnowMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_AbomasnowMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AbomasnowMega, 64, 64), + .backPic = gMonBackPic_AbomasnowMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(AbomasnowMega), - ICON(AbomasnowMega, 1), + .palette = gMonPalette_AbomasnowMega, + .shinyPalette = gMonShinyPalette_AbomasnowMega, + .iconSprite = gMonIcon_AbomasnowMega, + .iconPalIndex = 1, + FOOTPRINT(Abomasnow) .isMegaEvolution = TRUE, + .levelUpLearnset = sAbomasnowLevelUpLearnset, + .teachableLearnset = sAbomasnowTeachableLearnset, + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, + .formChangeTable = sAbomasnowFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SNOVER #if P_FAMILY_ROTOM -#define ROTOM_MISC_INFO \ - .catchRate = 45, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Rotom"), \ - .cryId = CRY_ROTOM, \ - .natDexNum = NATIONAL_DEX_ROTOM, \ - .categoryName = _("Plasma"), \ - .height = 3, \ - .weight = 3, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Rotom, \ - LEARNSETS(Rotom), \ - .formSpeciesIdTable = sRotomFormSpeciesIdTable, \ - .formChangeTable = sRotomFormChangeTable - [SPECIES_ROTOM] = { - ROTOM_MISC_INFO, .baseHP = 50, .baseAttack = 50, .baseDefense = 77, .baseSpeed = 91, .baseSpAttack = 95, .baseSpDefense = 77, - .types = { TYPE_ELECTRIC, TYPE_GHOST }, - .expYield = 154, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 132, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "Its body is composed of plasma and loves\n" "to surprise others. One boy's invention led\n" "to the development of many machines that\n" "can use of Rotom's unique capabilities."), - FRONT_PIC(Rotom, 56, 48), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rotom, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Rotom, .frontAnimId = ANIM_GLOW_YELLOW, .enemyMonElevation = 10, - BACK_PIC(Rotom, 56, 56), + .backPic = gMonBackPic_Rotom, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Rotom), - ICON(Rotom, 0), + .palette = gMonPalette_Rotom, + .shinyPalette = gMonShinyPalette_Rotom, + .iconSprite = gMonIcon_Rotom, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, -#define ROTOM_APPLIANCE_INFO(form) \ - .baseHP = 50, \ - .baseAttack = 65, \ - .baseDefense = 107, \ - .baseSpeed = 86, \ - .baseSpAttack = 105, \ - .baseSpDefense = 107, \ - .expYield = 182 +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ROTOM_APPLIANCE_EXP_YIELD 182 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ROTOM_APPLIANCE_EXP_YIELD 154 +#else + #define ROTOM_APPLIANCE_EXP_YIELD 132 +#endif [SPECIES_ROTOM_HEAT] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FIRE }, - ROTOM_APPLIANCE_INFO(Heat), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIRE), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "If the convection microwave oven is not\n" "working properly, then the Rotom inhabiting\n" "it will become lethargic. It will gleefully\n" "burn your favorite outfit in mischief."), - FRONT_PIC(RotomHeat, 56, 48), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomHeat, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_RotomHeat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(RotomHeat, 64, 40), + .backPic = gMonBackPic_RotomHeat, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(RotomHeat), - ICON(RotomHeat, 0), + .palette = gMonPalette_RotomHeat, + .shinyPalette = gMonShinyPalette_RotomHeat, + .iconSprite = gMonIcon_RotomHeat, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_WASH] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_WATER }, + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_WATER), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, - ROTOM_APPLIANCE_INFO(Wash), + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "It enjoys coming up with water-based\n" "pranks. The model of washing machine that\n" "Rotom can inspirit has been discontinued,\n" "so they are now traded at high prices."), - FRONT_PIC(RotomWash, 64, 56), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomWash, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_RotomWash, .frontAnimId = ANIM_V_JUMPS_SMALL, .enemyMonElevation = 6, - BACK_PIC(RotomWash, 64, 48), + .backPic = gMonBackPic_RotomWash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(RotomWash), - ICON(RotomWash, 0), + .palette = gMonPalette_RotomWash, + .shinyPalette = gMonShinyPalette_RotomWash, + .iconSprite = gMonIcon_RotomWash, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_FROST] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ICE }, - ROTOM_APPLIANCE_INFO(Frost), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_ICE), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "In this form, Rotom likes to play freezing\n" "cold pranks. You may find it's turned the\n" "bath you just filled to solid ice!\n" "It battles by spewing cold air."), - FRONT_PIC(RotomFrost, 64, 64), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomFrost, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_RotomFrost, .frontAnimId = ANIM_H_STRETCH, .enemyMonElevation = 6, - BACK_PIC(RotomFrost, 64, 56), + .backPic = gMonBackPic_RotomFrost, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(RotomFrost), - ICON(RotomFrost, 5), + .palette = gMonPalette_RotomFrost, + .shinyPalette = gMonShinyPalette_RotomFrost, + .iconSprite = gMonIcon_RotomFrost, + .iconPalIndex = 5, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_FAN] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, - ROTOM_APPLIANCE_INFO(Fan), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "The first appliance developed that Rotom\n" "coud inspirit was the electric fan. It uses\n" "its power over wind in its pranks, happily\n" "blowing any important documents it finds."), - FRONT_PIC(RotomFan, 64, 56), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomFan, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_RotomFan, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .frontAnimDelay = 7, .enemyMonElevation = 6, - BACK_PIC(RotomFan, 64, 48), + .backPic = gMonBackPic_RotomFan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(RotomFan), - ICON(RotomFan, 0), + .palette = gMonPalette_RotomFan, + .shinyPalette = gMonShinyPalette_RotomFan, + .iconSprite = gMonIcon_RotomFan, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_MOW] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, - ROTOM_APPLIANCE_INFO(Mow), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "The lawn mower is an appliance that led to\n" "the development of the Rotom Dex. It will\n" "mow down grass and flowers, then swagger\n" "around with pride at its accomplishments."), - FRONT_PIC(RotomMow, 56, 64), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomMow, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_RotomMow, .frontAnimId = ANIM_TIP_MOVE_FORWARD, .enemyMonElevation = 6, - BACK_PIC(RotomMow, 56, 48), + .backPic = gMonBackPic_RotomMow, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(RotomMow), - ICON(RotomMow, 0), + .palette = gMonPalette_RotomMow, + .shinyPalette = gMonShinyPalette_RotomMow, + .iconSprite = gMonIcon_RotomMow, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, #endif //P_FAMILY_ROTOM @@ -3666,19 +4547,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Defense = 2, .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Uxie"), .cryId = CRY_UXIE, .natDexNum = NATIONAL_DEX_UXIE, @@ -3694,18 +4580,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Uxie, 56, 56), + .frontPic = gMonFrontPic_Uxie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Uxie, .frontAnimId = ANIM_SWING_CONCAVE, .enemyMonElevation = 6, - BACK_PIC(Uxie, 56, 48), + .backPic = gMonBackPic_Uxie, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Uxie), - ICON(Uxie, 0), - .footprint = gMonFootprint_Uxie, - LEARNSETS(Uxie), + .palette = gMonPalette_Uxie, + .shinyPalette = gMonShinyPalette_Uxie, + .iconSprite = gMonIcon_Uxie, + .iconPalIndex = 0, + FOOTPRINT(Uxie) + .isLegendary = TRUE, + .levelUpLearnset = sUxieLevelUpLearnset, + .teachableLearnset = sUxieTeachableLearnset, }, #endif //P_FAMILY_UXIE @@ -3718,9 +4610,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 105, .baseSpDefense = 105, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Attack = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, @@ -3728,10 +4626,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isLegendary = TRUE, .speciesName = _("Mesprit"), .cryId = CRY_MESPRIT, .natDexNum = NATIONAL_DEX_MESPRIT, @@ -3747,18 +4644,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mesprit, 48, 56), + .frontPic = gMonFrontPic_Mesprit, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mesprit, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Mesprit, 64, 48), + .backPic = gMonBackPic_Mesprit, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mesprit), - ICON(Mesprit, 0), - .footprint = gMonFootprint_Mesprit, - LEARNSETS(Mesprit), + .palette = gMonPalette_Mesprit, + .shinyPalette = gMonShinyPalette_Mesprit, + .iconSprite = gMonIcon_Mesprit, + .iconPalIndex = 0, + FOOTPRINT(Mesprit) + .isLegendary = TRUE, + .levelUpLearnset = sMespritLevelUpLearnset, + .teachableLearnset = sMespritTeachableLearnset, }, #endif //P_FAMILY_MESPRIT @@ -3771,19 +4674,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 115, .baseSpAttack = 125, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Attack = 2, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Azelf"), .cryId = CRY_AZELF, .natDexNum = NATIONAL_DEX_AZELF, @@ -3799,53 +4707,59 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azelf, 48, 64), + .frontPic = gMonFrontPic_Azelf, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Azelf, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Azelf, 64, 56), + .backPic = gMonBackPic_Azelf, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Azelf), - ICON(Azelf, 0), - .footprint = gMonFootprint_Azelf, - LEARNSETS(Azelf), + .palette = gMonPalette_Azelf, + .shinyPalette = gMonShinyPalette_Azelf, + .iconSprite = gMonIcon_Azelf, + .iconPalIndex = 0, + FOOTPRINT(Azelf) + .isLegendary = TRUE, + .levelUpLearnset = sAzelfLevelUpLearnset, + .teachableLearnset = sAzelfTeachableLearnset, }, #endif //P_FAMILY_AZELF #if P_FAMILY_DIALGA -#define DIALGA_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Dialga"), \ - .cryId = CRY_DIALGA, \ - .natDexNum = NATIONAL_DEX_DIALGA, \ - .categoryName = _("Temporal"), \ - .footprint = gMonFootprint_Dialga, \ - LEARNSETS(Dialga), \ - .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ - .formChangeTable = sDialgaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define DIALGA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DIALGA_EXP_YIELD 306 +#else + #define DIALGA_EXP_YIELD 220 +#endif [SPECIES_DIALGA] = { - DIALGA_MISC_INFO, .baseHP = 100, .baseAttack = 120, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 3, + .expYield = DIALGA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Dialga"), + .cryId = CRY_DIALGA, + .natDexNum = NATIONAL_DEX_DIALGA, + .categoryName = _("Temporal"), .height = 54, .weight = 6830, .description = COMPOUND_STRING( @@ -3857,26 +4771,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Dialga, 64, 64), + .frontPic = gMonFrontPic_Dialga, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dialga, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Dialga, 64, 64), + .backPic = gMonBackPic_Dialga, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dialga), - ICON(Dialga, 2), + .palette = gMonPalette_Dialga, + .shinyPalette = gMonShinyPalette_Dialga, + .iconSprite = gMonIcon_Dialga, + .iconPalIndex = 2, + FOOTPRINT(Dialga) + .isLegendary = TRUE, + .levelUpLearnset = sDialgaLevelUpLearnset, + .teachableLearnset = sDialgaTeachableLearnset, + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, + .formChangeTable = sDialgaFormChangeTable, }, [SPECIES_DIALGA_ORIGIN] = { - DIALGA_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 3, + .expYield = DIALGA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Dialga"), + .cryId = CRY_DIALGA, + .natDexNum = NATIONAL_DEX_DIALGA, + .categoryName = _("Temporal"), .height = 70, .weight = 8500, .description = COMPOUND_STRING( @@ -3888,50 +4826,60 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(DialgaOrigin, 64, 64), + .frontPic = gMonFrontPic_DialgaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DialgaOrigin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DialgaOrigin, 64, 64), + .backPic = gMonBackPic_DialgaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DialgaOrigin), - ICON(DialgaOrigin, 0), + .palette = gMonPalette_DialgaOrigin, + .shinyPalette = gMonShinyPalette_DialgaOrigin, + .iconSprite = gMonIcon_DialgaOrigin, + .iconPalIndex = 0, + FOOTPRINT(Dialga) + .isLegendary = TRUE, + .levelUpLearnset = sDialgaLevelUpLearnset, + .teachableLearnset = sDialgaTeachableLearnset, + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, + .formChangeTable = sDialgaFormChangeTable, }, #endif //P_FAMILY_DIALGA #if P_FAMILY_PALKIA -#define PALKIA_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Palkia"), \ - .cryId = CRY_PALKIA, \ - .natDexNum = NATIONAL_DEX_PALKIA, \ - .categoryName = _("Spatial"), \ - .footprint = gMonFootprint_Palkia, \ - LEARNSETS(Palkia), \ - .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ - .formChangeTable = sPalkiaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define PALKIA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define PALKIA_EXP_YIELD 306 +#else + #define PALKIA_EXP_YIELD 220 +#endif [SPECIES_PALKIA] = { - PALKIA_MISC_INFO, .baseHP = 90, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), + .catchRate = 3, + .expYield = PALKIA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Palkia"), + .cryId = CRY_PALKIA, + .natDexNum = NATIONAL_DEX_PALKIA, + .categoryName = _("Spatial"), .height = 42, .weight = 3360, .description = COMPOUND_STRING( @@ -3943,26 +4891,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 650, .trainerOffset = 16, - FRONT_PIC(Palkia, 64, 64), + .frontPic = gMonFrontPic_Palkia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Palkia, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Palkia, 64, 64), + .backPic = gMonBackPic_Palkia, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Palkia), - ICON(Palkia, 2), + .palette = gMonPalette_Palkia, + .shinyPalette = gMonShinyPalette_Palkia, + .iconSprite = gMonIcon_Palkia, + .iconPalIndex = 2, + FOOTPRINT(Palkia) + .isLegendary = TRUE, + .levelUpLearnset = sPalkiaLevelUpLearnset, + .teachableLearnset = sPalkiaTeachableLearnset, + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, + .formChangeTable = sPalkiaFormChangeTable, }, [SPECIES_PALKIA_ORIGIN] = { - PALKIA_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 120, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), + .catchRate = 3, + .expYield = PALKIA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Palkia"), + .cryId = CRY_PALKIA, + .natDexNum = NATIONAL_DEX_PALKIA, + .categoryName = _("Spatial"), .height = 63, .weight = 6600, .description = COMPOUND_STRING( @@ -3974,15 +4946,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 650, .trainerOffset = 16, - FRONT_PIC(PalkiaOrigin, 64, 64), + .frontPic = gMonFrontPic_PalkiaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_PalkiaOrigin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PalkiaOrigin, 64, 64), + .backPic = gMonBackPic_PalkiaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalkiaOrigin), - ICON(PalkiaOrigin, 2), + .palette = gMonPalette_PalkiaOrigin, + .shinyPalette = gMonShinyPalette_PalkiaOrigin, + .iconSprite = gMonIcon_PalkiaOrigin, + .iconPalIndex = 2, + FOOTPRINT(Palkia) + .isLegendary = TRUE, + .levelUpLearnset = sPalkiaLevelUpLearnset, + .teachableLearnset = sPalkiaTeachableLearnset, + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, + .formChangeTable = sPalkiaFormChangeTable, }, #endif //P_FAMILY_PALKIA @@ -3995,18 +4977,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 77, .baseSpAttack = 130, .baseSpDefense = 106, - .types = { TYPE_FIRE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_STEEL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Heatran"), .cryId = CRY_HEATRAN, .natDexNum = NATIONAL_DEX_HEATRAN, @@ -4022,17 +5009,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 1, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Heatran, 64, 56), + .frontPic = gMonFrontPic_Heatran, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Heatran, .frontAnimId = ANIM_GLOW_ORANGE, - BACK_PIC(Heatran, 64, 40), + .backPic = gMonBackPic_Heatran, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Heatran), - ICON(Heatran, 0), - .footprint = gMonFootprint_Heatran, - LEARNSETS(Heatran), + .palette = gMonPalette_Heatran, + .shinyPalette = gMonShinyPalette_Heatran, + .iconSprite = gMonIcon_Heatran, + .iconPalIndex = 0, + FOOTPRINT(Heatran) + .isLegendary = TRUE, + .levelUpLearnset = sHeatranLevelUpLearnset, + .teachableLearnset = sHeatranTeachableLearnset, }, #endif //P_FAMILY_HEATRAN @@ -4045,18 +5038,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 302, + #else + .expYield = 220, + #endif .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SLOW_START, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SLOW_START, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Regigigas"), .cryId = CRY_REGIGIGAS, .natDexNum = NATIONAL_DEX_REGIGIGAS, @@ -4072,52 +5070,58 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Regigigas, 64, 64), + .frontPic = gMonFrontPic_Regigigas, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Regigigas, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Regigigas, 64, 40), + .backPic = gMonBackPic_Regigigas, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Regigigas), - ICON(Regigigas, 0), - .footprint = gMonFootprint_Regigigas, - LEARNSETS(Regigigas), + .palette = gMonPalette_Regigigas, + .shinyPalette = gMonShinyPalette_Regigigas, + .iconSprite = gMonIcon_Regigigas, + .iconPalIndex = 0, + FOOTPRINT(Regigigas) + .isLegendary = TRUE, + .levelUpLearnset = sRegigigasLevelUpLearnset, + .teachableLearnset = sRegigigasTeachableLearnset, }, #endif //P_FAMILY_REGIGIGAS #if P_FAMILY_GIRATINA -#define GIRATINA_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Giratina"), \ - .cryId = CRY_GIRATINA, \ - .natDexNum = NATIONAL_DEX_GIRATINA, \ - .categoryName = _("Renegade"), \ - .footprint = gMonFootprint_Giratina, \ - LEARNSETS(Giratina), \ - .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, \ - .formChangeTable = sGiratinaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define GIRATINA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define GIRATINA_EXP_YIELD 306 +#else + #define GIRATINA_EXP_YIELD 220 +#endif [SPECIES_GIRATINA_ALTERED] = { - GIRATINA_MISC_INFO, .baseHP = 150, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_GHOST, TYPE_DRAGON), + .catchRate = 3, + .expYield = GIRATINA_EXP_YIELD, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Giratina"), + .cryId = CRY_GIRATINA, + .natDexNum = NATIONAL_DEX_GIRATINA, + .categoryName = _("Renegade"), .height = 45, .weight = 7500, .description = COMPOUND_STRING( @@ -4129,27 +5133,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(GiratinaAltered, 64, 64), + .frontPic = gMonFrontPic_GiratinaAltered, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GiratinaAltered, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(GiratinaAltered, 64, 64), + .backPic = gMonBackPic_GiratinaAltered, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(GiratinaAltered), - ICON(GiratinaAltered, 0), + .palette = gMonPalette_GiratinaAltered, + .shinyPalette = gMonShinyPalette_GiratinaAltered, + .iconSprite = gMonIcon_GiratinaAltered, + .iconPalIndex = 0, + FOOTPRINT(Giratina) + .isLegendary = TRUE, + .levelUpLearnset = sGiratinaLevelUpLearnset, + .teachableLearnset = sGiratinaTeachableLearnset, + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, + .formChangeTable = sGiratinaFormChangeTable, }, [SPECIES_GIRATINA_ORIGIN] = { - GIRATINA_MISC_INFO, .baseHP = 150, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 90, .baseSpAttack = 120, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GHOST, TYPE_DRAGON), + .catchRate = 3, + .expYield = GIRATINA_EXP_YIELD, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Giratina"), + .cryId = CRY_GIRATINA, + .natDexNum = NATIONAL_DEX_GIRATINA, + .categoryName = _("Renegade"), .height = 69, .weight = 6500, .description = COMPOUND_STRING( @@ -4161,16 +5188,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(GiratinaOrigin, 64, 64), + .frontPic = gMonFrontPic_GiratinaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GiratinaOrigin, .frontAnimId = ANIM_LUNGE_GROW, .enemyMonElevation = 7, - BACK_PIC(GiratinaOrigin, 64, 56), + .backPic = gMonBackPic_GiratinaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(GiratinaOrigin), - ICON(GiratinaOrigin, 0), + .palette = gMonPalette_GiratinaOrigin, + .shinyPalette = gMonShinyPalette_GiratinaOrigin, + .iconSprite = gMonIcon_GiratinaOrigin, + .iconPalIndex = 0, + FOOTPRINT(Giratina) + .isLegendary = TRUE, + .levelUpLearnset = sGiratinaLevelUpLearnset, + .teachableLearnset = sGiratinaTeachableLearnset, + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, + .formChangeTable = sGiratinaFormChangeTable, }, #endif //P_FAMILY_GIRATINA @@ -4183,18 +5220,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 75, .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif .evYield_SpDefense = 3, .genderRatio = MON_FEMALE, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Cresselia"), .cryId = CRY_CRESSELIA, .natDexNum = NATIONAL_DEX_CRESSELIA, @@ -4210,18 +5252,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Cresselia, 64, 64), + .frontPic = gMonFrontPic_Cresselia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Cresselia, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Cresselia, 56, 64), + .backPic = gMonBackPic_Cresselia, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Cresselia), - ICON(Cresselia, 0), - .footprint = gMonFootprint_Cresselia, - LEARNSETS(Cresselia), + .palette = gMonPalette_Cresselia, + .shinyPalette = gMonShinyPalette_Cresselia, + .iconSprite = gMonIcon_Cresselia, + .iconPalIndex = 0, + FOOTPRINT(Cresselia) + .isLegendary = TRUE, + .levelUpLearnset = sCresseliaLevelUpLearnset, + .teachableLearnset = sCresseliaTeachableLearnset, }, #endif //P_FAMILY_CRESSELIA @@ -4234,18 +5282,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 165, + #endif .evYield_HP = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, - .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HYDRATION, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isMythical = TRUE, .speciesName = _("Phione"), .cryId = CRY_PHIONE, .natDexNum = NATIONAL_DEX_PHIONE, @@ -4261,18 +5314,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phione, 56, 40), + .frontPic = gMonFrontPic_Phione, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Phione, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Phione, 64, 48), + .backPic = gMonBackPic_Phione, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Phione), - ICON(Phione, 0), - .footprint = gMonFootprint_Phione, - LEARNSETS(Phione), + .palette = gMonPalette_Phione, + .shinyPalette = gMonShinyPalette_Phione, + .iconSprite = gMonIcon_Phione, + .iconPalIndex = 0, + FOOTPRINT(Phione) + .isMythical = TRUE, + .levelUpLearnset = sPhioneLevelUpLearnset, + .teachableLearnset = sPhioneTeachableLearnset, }, [SPECIES_MANAPHY] = @@ -4283,18 +5342,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, - .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HYDRATION, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isMythical = TRUE, .speciesName = _("Manaphy"), .cryId = CRY_MANAPHY, .natDexNum = NATIONAL_DEX_MANAPHY, @@ -4310,18 +5374,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Manaphy, 64, 40), + .frontPic = gMonFrontPic_Manaphy, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Manaphy, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 10, - BACK_PIC(Manaphy, 64, 56), + .backPic = gMonBackPic_Manaphy, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Manaphy), - ICON(Manaphy, 0), - .footprint = gMonFootprint_Manaphy, - LEARNSETS(Manaphy), + .palette = gMonPalette_Manaphy, + .shinyPalette = gMonShinyPalette_Manaphy, + .iconSprite = gMonIcon_Manaphy, + .iconPalIndex = 0, + FOOTPRINT(Manaphy) + .isMythical = TRUE, + .levelUpLearnset = sManaphyLevelUpLearnset, + .teachableLearnset = sManaphyTeachableLearnset, }, #endif //P_FAMILY_MANAPHY @@ -4334,19 +5404,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 125, .baseSpAttack = 135, .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif .evYield_Speed = 1, .evYield_SpAttack = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isMythical = TRUE, .speciesName = _("Darkrai"), .cryId = CRY_DARKRAI, .natDexNum = NATIONAL_DEX_DARKRAI, @@ -4362,54 +5437,61 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Darkrai, 64, 64), + .frontPic = gMonFrontPic_Darkrai, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Darkrai, .frontAnimId = ANIM_GLOW_BLACK, .enemyMonElevation = 4, - BACK_PIC(Darkrai, 64, 64), + .backPic = gMonBackPic_Darkrai, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Darkrai), - ICON(Darkrai, 0), - .footprint = gMonFootprint_Darkrai, - LEARNSETS(Darkrai), + .palette = gMonPalette_Darkrai, + .shinyPalette = gMonShinyPalette_Darkrai, + .iconSprite = gMonIcon_Darkrai, + .iconPalIndex = 0, + FOOTPRINT(Darkrai) + .isMythical = TRUE, + .levelUpLearnset = sDarkraiLevelUpLearnset, + .teachableLearnset = sDarkraiTeachableLearnset, }, #endif //P_FAMILY_DARKRAI #if P_FAMILY_SHAYMIN -#define SHAYMIN_MISC_INFO \ - .catchRate = 45, \ - .expYield = 270, \ - .evYield_HP = 3, \ - .itemCommon = ITEM_LUM_BERRY, \ - .itemRare = ITEM_LUM_BERRY, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Shaymin"), \ - .natDexNum = NATIONAL_DEX_SHAYMIN, \ - .categoryName = _("Gratitude"), \ - .footprint = gMonFootprint_Shaymin, \ - .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ - .formChangeTable = sShayminFormChangeTable, \ - .isMythical = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define SHAYMIN_EXP_YIELD 300 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define SHAYMIN_EXP_YIELD 270 +#else + #define SHAYMIN_EXP_YIELD 64 +#endif [SPECIES_SHAYMIN_LAND] = { - SHAYMIN_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, - .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = SHAYMIN_EXP_YIELD, + .evYield_HP = 3, + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Shaymin"), .cryId = CRY_SHAYMIN_LAND, + .natDexNum = NATIONAL_DEX_SHAYMIN, + .categoryName = _("Gratitude"), .height = 2, .weight = 21, .description = COMPOUND_STRING( @@ -4421,31 +5503,57 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ShayminLand, 40, 32), + .frontPic = gMonFrontPic_ShayminLand, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_ShayminLand, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ShayminLand, 56, 40), + .backPic = gMonBackPic_ShayminLand, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(ShayminLand), - ICON(ShayminLand, 1), - LEARNSETS(ShayminLand), + .palette = gMonPalette_ShayminLand, + .shinyPalette = gMonShinyPalette_ShayminLand, + .iconSprite = gMonIcon_ShayminLand, + .iconPalIndex = 1, + FOOTPRINT(Shaymin) + .isMythical = TRUE, + .levelUpLearnset = sShayminLandLevelUpLearnset, + .teachableLearnset = sShayminLandTeachableLearnset, + .formSpeciesIdTable = sShayminFormSpeciesIdTable, + .formChangeTable = sShayminFormChangeTable, }, [SPECIES_SHAYMIN_SKY] = { - SHAYMIN_MISC_INFO, .baseHP = 100, .baseAttack = 103, .baseDefense = 75, .baseSpeed = 127, .baseSpAttack = 120, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FLYING }, - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), + .catchRate = 45, + .expYield = SHAYMIN_EXP_YIELD, + #if P_UPDATED_EVS >= GEN_5 + .evYield_Speed = 3, + #else + .evYield_HP = 3, + #endif + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, + .speciesName = _("Shaymin"), .cryId = CRY_SHAYMIN_SKY, + .natDexNum = NATIONAL_DEX_SHAYMIN, + .categoryName = _("Gratitude"), .height = 4, .weight = 52, .description = COMPOUND_STRING( @@ -4457,84 +5565,106 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ShayminSky, 56, 56), + .frontPic = gMonFrontPic_ShayminSky, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_ShayminSky, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(ShayminSky, 56, 64), + .backPic = gMonBackPic_ShayminSky, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(ShayminSky), - ICON(ShayminSky, 1), - LEARNSETS(ShayminSky), + .palette = gMonPalette_ShayminSky, + .shinyPalette = gMonShinyPalette_ShayminSky, + .iconSprite = gMonIcon_ShayminSky, + .iconPalIndex = 1, + FOOTPRINT(Shaymin) + .isMythical = TRUE, + .levelUpLearnset = sShayminSkyLevelUpLearnset, + .teachableLearnset = sShayminSkyTeachableLearnset, + .formSpeciesIdTable = sShayminFormSpeciesIdTable, + .formChangeTable = sShayminFormChangeTable, }, #endif //P_FAMILY_SHAYMIN #if P_FAMILY_ARCEUS -#define ARCEUS_SPECIES_INFO(type, typeName) \ - { \ - .baseHP = 120, \ - .baseAttack = 120, \ - .baseDefense = 120, \ - .baseSpeed = 120, \ - .baseSpAttack = 120, \ - .baseSpDefense = 120, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 324, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_MULTITYPE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Arceus"), \ - .cryId = CRY_ARCEUS, \ - .natDexNum = NATIONAL_DEX_ARCEUS, \ - .categoryName = _("Alpha"), \ - .height = 32, \ - .weight = 3200, \ - .description = gArceusPokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 495, \ - .trainerOffset = 10, \ - FRONT_PIC(Arceus, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Arceus, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Arceus, 64, 64), \ - .backPicYOffset = 3, \ - .backAnimId = BACK_ANIM_GROW_STUTTER, \ - PALETTES(Arceus ##typeName), \ - ICON(Arceus, 1), \ - .footprint = gMonFootprint_Arceus, \ - LEARNSETS(Arceus), \ - .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ - .formChangeTable = sArceusFormChangeTable, \ - .isMythical = TRUE, \ +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define ARCEUS_EXP_YIELD 360 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ARCEUS_EXP_YIELD 324 +#else + #define ARCEUS_EXP_YIELD 255 +#endif + +#define ARCEUS_SPECIES_INFO(type, typeName) \ + { \ + .baseHP = 120, \ + .baseAttack = 120, \ + .baseDefense = 120, \ + .baseSpeed = 120, \ + .baseSpAttack = 120, \ + .baseSpDefense = 120, \ + .types = MON_TYPES(type), \ + .catchRate = 3, \ + .expYield = ARCEUS_EXP_YIELD, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_MULTITYPE, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Arceus"), \ + .cryId = CRY_ARCEUS, \ + .natDexNum = NATIONAL_DEX_ARCEUS, \ + .categoryName = _("Alpha"), \ + .height = 32, \ + .weight = 3200, \ + .description = gArceusPokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 495, \ + .trainerOffset = 10, \ + .frontPic = gMonFrontPic_Arceus, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Arceus, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + .backPic = gMonBackPic_Arceus, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ + .backPicYOffset = 3, \ + .backAnimId = BACK_ANIM_GROW_STUTTER, \ + .palette = gMonPalette_Arceus ##typeName, \ + .shinyPalette = gMonShinyPalette_Arceus ##typeName, \ + .iconSprite = gMonIcon_Arceus, \ + .iconPalIndex = 1, \ + FOOTPRINT(Arceus) \ + .levelUpLearnset = sArceusLevelUpLearnset, \ + .teachableLearnset = sArceusTeachableLearnset, \ + .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ + .formChangeTable = sArceusFormChangeTable, \ + .isMythical = TRUE, \ } - [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), + [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), [SPECIES_ARCEUS_FIGHTING] = ARCEUS_SPECIES_INFO(TYPE_FIGHTING, Fighting), - [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING, Flying), - [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON, Poison), - [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND, Ground), - [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK, Rock), - [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG, Bug), - [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST, Ghost), - [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL, Steel), - [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE, Fire), - [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER, Water), - [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS, Grass), + [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING, Flying), + [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON, Poison), + [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND, Ground), + [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK, Rock), + [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG, Bug), + [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST, Ghost), + [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL, Steel), + [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE, Fire), + [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER, Water), + [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS, Grass), [SPECIES_ARCEUS_ELECTRIC] = ARCEUS_SPECIES_INFO(TYPE_ELECTRIC, Electric), - [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC, Psychic), - [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE, Ice), - [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON, Dragon), - [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK, Dark), - [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY, Fairy), + [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC, Psychic), + [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE, Ice), + [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON, Dragon), + [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK, Dark), + [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY, Fairy), #endif //P_FAMILY_ARCEUS #ifdef __INTELLISENSE__ diff --git a/src/data/pokemon/species_info/gen_5.h b/src/data/pokemon/species_info/gen_5_families.h similarity index 60% rename from src/data/pokemon/species_info/gen_5.h rename to src/data/pokemon/species_info/gen_5_families.h index 15ff00fcf..4b1fea026 100644 --- a/src/data/pokemon/species_info/gen_5.h +++ b/src/data/pokemon/species_info/gen_5_families.h @@ -12,18 +12,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIRE }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIRE), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Victini"), .cryId = CRY_VICTINI, .natDexNum = NATIONAL_DEX_VICTINI, @@ -39,17 +38,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Victini, 48, 56), + .frontPic = gMonFrontPic_Victini, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Victini, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Victini, 40, 64), + .backPic = gMonBackPic_Victini, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Victini), - ICON(Victini, 0), - .footprint = gMonFootprint_Victini, - LEARNSETS(Victini), + .palette = gMonPalette_Victini, + .shinyPalette = gMonShinyPalette_Victini, + .iconSprite = gMonIcon_Victini, + .iconPalIndex = 0, + FOOTPRINT(Victini) + .isMythical = TRUE, + .levelUpLearnset = sVictiniLevelUpLearnset, + .teachableLearnset = sVictiniTeachableLearnset, }, #endif //P_FAMILY_VICTINI @@ -62,7 +67,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 63, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -70,7 +75,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Snivy"), @@ -88,17 +93,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snivy, 48, 40), + .frontPic = gMonFrontPic_Snivy, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snivy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snivy, 56, 48), + .backPic = gMonBackPic_Snivy, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Snivy), - ICON(Snivy, 1), - .footprint = gMonFootprint_Snivy, - LEARNSETS(Snivy), + .palette = gMonPalette_Snivy, + .shinyPalette = gMonShinyPalette_Snivy, + .iconSprite = gMonIcon_Snivy, + .iconPalIndex = 1, + FOOTPRINT(Snivy) + .levelUpLearnset = sSnivyLevelUpLearnset, + .teachableLearnset = sSnivyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_SERVINE}), }, @@ -110,7 +120,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 83, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 145, .evYield_Speed = 2, @@ -118,7 +128,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Servine"), @@ -136,17 +146,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Servine, 48, 56), + .frontPic = gMonFrontPic_Servine, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Servine, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Servine, 48, 64), + .backPic = gMonBackPic_Servine, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Servine), - ICON(Servine, 1), - .footprint = gMonFootprint_Servine, - LEARNSETS(Servine), + .palette = gMonPalette_Servine, + .shinyPalette = gMonShinyPalette_Servine, + .iconSprite = gMonIcon_Servine, + .iconPalIndex = 1, + FOOTPRINT(Servine) + .levelUpLearnset = sServineLevelUpLearnset, + .teachableLearnset = sServineTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SERPERIOR}), }, @@ -158,15 +173,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 113, .baseSpAttack = 75, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 238, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Serperior"), @@ -184,17 +199,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Serperior, 64, 56), + .frontPic = gMonFrontPic_Serperior, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Serperior, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Serperior, 64, 64), + .backPic = gMonBackPic_Serperior, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Serperior), - ICON(Serperior, 1), - .footprint = gMonFootprint_Serperior, - LEARNSETS(Serperior), + .palette = gMonPalette_Serperior, + .shinyPalette = gMonShinyPalette_Serperior, + .iconSprite = gMonIcon_Serperior, + .iconPalIndex = 1, + FOOTPRINT(Serperior) + .levelUpLearnset = sSerperiorLevelUpLearnset, + .teachableLearnset = sSerperiorTeachableLearnset, }, #endif //P_FAMILY_SNIVY @@ -207,7 +227,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_HP = 1, @@ -215,7 +235,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Tepig"), @@ -233,17 +253,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tepig, 40, 48), + .frontPic = gMonFrontPic_Tepig, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Tepig, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Tepig, 48, 56), + .backPic = gMonBackPic_Tepig, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Tepig), - ICON(Tepig, 0), - .footprint = gMonFootprint_Tepig, - LEARNSETS(Tepig), + .palette = gMonPalette_Tepig, + .shinyPalette = gMonShinyPalette_Tepig, + .iconSprite = gMonIcon_Tepig, + .iconPalIndex = 0, + FOOTPRINT(Tepig) + .levelUpLearnset = sTepigLevelUpLearnset, + .teachableLearnset = sTepigTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_PIGNITE}), }, @@ -255,7 +280,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 146, .evYield_Attack = 2, @@ -263,7 +288,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Pignite"), @@ -281,17 +306,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Pignite, 56, 56), + .frontPic = gMonFrontPic_Pignite, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Pignite, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pignite, 64, 64), + .backPic = gMonBackPic_Pignite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Pignite), - ICON(Pignite, 0), - .footprint = gMonFootprint_Pignite, - LEARNSETS(Pignite), + .palette = gMonPalette_Pignite, + .shinyPalette = gMonShinyPalette_Pignite, + .iconSprite = gMonIcon_Pignite, + .iconPalIndex = 0, + FOOTPRINT(Pignite) + .levelUpLearnset = sPigniteLevelUpLearnset, + .teachableLearnset = sPigniteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMBOAR}), }, @@ -303,15 +333,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, - .expYield = 238, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -330,17 +360,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Emboar, 64, 64), + .frontPic = gMonFrontPic_Emboar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Emboar, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(Emboar, 64, 64), + .backPic = gMonBackPic_Emboar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Emboar), - ICON(Emboar, 0), - .footprint = gMonFootprint_Emboar, - LEARNSETS(Emboar), + .palette = gMonPalette_Emboar, + .shinyPalette = gMonShinyPalette_Emboar, + .iconSprite = gMonIcon_Emboar, + .iconPalIndex = 0, + FOOTPRINT(Emboar) + .levelUpLearnset = sEmboarLevelUpLearnset, + .teachableLearnset = sEmboarTeachableLearnset, }, #endif //P_FAMILY_TEPIG @@ -353,7 +388,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 63, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_SpAttack = 1, @@ -361,7 +396,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Oshawott"), @@ -379,17 +414,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Oshawott, 32, 40), + .frontPic = gMonFrontPic_Oshawott, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Oshawott, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Oshawott, 40, 48), + .backPic = gMonBackPic_Oshawott, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Oshawott), - ICON(Oshawott, 0), - .footprint = gMonFootprint_Oshawott, - LEARNSETS(Oshawott), + .palette = gMonPalette_Oshawott, + .shinyPalette = gMonShinyPalette_Oshawott, + .iconSprite = gMonIcon_Oshawott, + .iconPalIndex = 0, + FOOTPRINT(Oshawott) + .levelUpLearnset = sOshawottLevelUpLearnset, + .teachableLearnset = sOshawottTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DEWOTT}), }, @@ -401,7 +441,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 83, .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 145, .evYield_SpAttack = 2, @@ -409,7 +449,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dewott"), @@ -427,102 +467,132 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Dewott, 40, 56), + .frontPic = gMonFrontPic_Dewott, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Dewott, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Dewott, 56, 64), + .backPic = gMonBackPic_Dewott, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Dewott), - ICON(Dewott, 0), - .footprint = gMonFootprint_Dewott, - LEARNSETS(Dewott), + .palette = gMonPalette_Dewott, + .shinyPalette = gMonShinyPalette_Dewott, + .iconSprite = gMonIcon_Dewott, + .iconPalIndex = 0, + FOOTPRINT(Dewott) + .levelUpLearnset = sDewottLevelUpLearnset, + .teachableLearnset = sDewottTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SAMUROTT}, {EVO_NONE, 0, SPECIES_SAMUROTT_HISUIAN}), }, -#define SAMUROTT_MISC_INFO \ - .catchRate = 45, \ - .expYield = 238, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Samurott"), \ - .cryId = CRY_SAMUROTT, \ - .natDexNum = NATIONAL_DEX_SAMUROTT, \ - .categoryName = _("Formidable"), \ - .height = 15, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Samurott, \ - .formSpeciesIdTable = sSamurottFormSpeciesIdTable - [SPECIES_SAMUROTT] = { - SAMUROTT_MISC_INFO, .baseHP = 95, .baseAttack = 100, .baseDefense = 85, .baseSpeed = 70, .baseSpAttack = 108, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Samurott"), + .cryId = CRY_SAMUROTT, + .natDexNum = NATIONAL_DEX_SAMUROTT, + .categoryName = _("Formidable"), + .height = 15, .weight = 946, .description = COMPOUND_STRING( "One swing of the seamitars attached\n" "to its armor can fell an opponent.\n" "A simple glare from one of them is\n" "enough to intimidate most enemies."), - FRONT_PIC(Samurott, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Samurott, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Samurott, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Samurott, 64, 56), + .backPic = gMonBackPic_Samurott, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Samurott), - ICON(Samurott, 2), - LEARNSETS(Samurott), + .palette = gMonPalette_Samurott, + .shinyPalette = gMonShinyPalette_Samurott, + .iconSprite = gMonIcon_Samurott, + .iconPalIndex = 2, + FOOTPRINT(Samurott) + .levelUpLearnset = sSamurottLevelUpLearnset, + .teachableLearnset = sSamurottTeachableLearnset, + .formSpeciesIdTable = sSamurottFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_SAMUROTT_HISUIAN] = { - SAMUROTT_MISC_INFO, .baseHP = 90, .baseAttack = 108, .baseDefense = 80, .baseSpeed = 85, .baseSpAttack = 100, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHARPNESS }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Samurott"), + .cryId = CRY_SAMUROTT, + .natDexNum = NATIONAL_DEX_SAMUROTT, + .categoryName = _("Formidable"), + .height = 15, .weight = 582, .description = COMPOUND_STRING( "Hard of heart and deft of blade,\n" "this rare form of Samurott is a\n" "product of the Pokémon's evolution in the\n" "region of Hisui."), - FRONT_PIC(SamurottHisuian, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SamurottHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SamurottHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SamurottHisuian, 64, 64), + .backPic = gMonBackPic_SamurottHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SamurottHisuian), - ICON(SamurottHisuian, 0), - LEARNSETS(SamurottHisuian), + .palette = gMonPalette_SamurottHisuian, + .shinyPalette = gMonShinyPalette_SamurottHisuian, + .iconSprite = gMonIcon_SamurottHisuian, + .iconPalIndex = 0, + FOOTPRINT(Samurott) .isHisuianForm = TRUE, + .levelUpLearnset = sSamurottHisuianLevelUpLearnset, + .teachableLearnset = sSamurottHisuianTeachableLearnset, + .formSpeciesIdTable = sSamurottFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_OSHAWOTT @@ -536,7 +606,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 35, .baseSpDefense = 39, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_Attack = 1, @@ -544,7 +614,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Patrat"), @@ -562,17 +632,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Patrat, 48, 40), + .frontPic = gMonFrontPic_Patrat, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Patrat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Patrat, 64, 40), + .backPic = gMonBackPic_Patrat, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Patrat), - ICON(Patrat, 2), - .footprint = gMonFootprint_Patrat, - LEARNSETS(Patrat), + .palette = gMonPalette_Patrat, + .shinyPalette = gMonShinyPalette_Patrat, + .iconSprite = gMonIcon_Patrat, + .iconPalIndex = 2, + FOOTPRINT(Patrat) + .levelUpLearnset = sPatratLevelUpLearnset, + .teachableLearnset = sPatratTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_WATCHOG}), }, @@ -584,7 +659,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 77, .baseSpAttack = 60, .baseSpDefense = 69, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 147, .evYield_Attack = 2, @@ -592,7 +667,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_ILLUMINATE, ABILITY_KEEN_EYE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Watchog"), @@ -610,17 +685,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Watchog, 32, 64), + .frontPic = gMonFrontPic_Watchog, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Watchog, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Watchog, 56, 64), + .backPic = gMonBackPic_Watchog, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Watchog), - ICON(Watchog, 2), - .footprint = gMonFootprint_Watchog, - LEARNSETS(Watchog), + .palette = gMonPalette_Watchog, + .shinyPalette = gMonShinyPalette_Watchog, + .iconSprite = gMonIcon_Watchog, + .iconPalIndex = 2, + FOOTPRINT(Watchog) + .levelUpLearnset = sWatchogLevelUpLearnset, + .teachableLearnset = sWatchogTeachableLearnset, }, #endif //P_FAMILY_PATRAT @@ -633,7 +713,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 25, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 55, .evYield_Attack = 1, @@ -641,7 +721,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_PICKUP, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Lillipup"), @@ -659,17 +739,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lillipup, 32, 40), + .frontPic = gMonFrontPic_Lillipup, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Lillipup, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Lillipup, 48, 48), + .backPic = gMonBackPic_Lillipup, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Lillipup), - ICON(Lillipup, 2), - .footprint = gMonFootprint_Lillipup, - LEARNSETS(Lillipup), + .palette = gMonPalette_Lillipup, + .shinyPalette = gMonShinyPalette_Lillipup, + .iconSprite = gMonIcon_Lillipup, + .iconPalIndex = 2, + FOOTPRINT(Lillipup) + .levelUpLearnset = sLillipupLevelUpLearnset, + .teachableLearnset = sLillipupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_HERDIER}), }, @@ -681,7 +766,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, .expYield = 130, .evYield_Attack = 2, @@ -689,7 +774,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Herdier"), @@ -707,17 +792,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Herdier, 48, 48), + .frontPic = gMonFrontPic_Herdier, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Herdier, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Herdier, 48, 56), + .backPic = gMonBackPic_Herdier, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Herdier), - ICON(Herdier, 2), - .footprint = gMonFootprint_Herdier, - LEARNSETS(Herdier), + .palette = gMonPalette_Herdier, + .shinyPalette = gMonShinyPalette_Herdier, + .iconSprite = gMonIcon_Herdier, + .iconPalIndex = 2, + FOOTPRINT(Herdier) + .levelUpLearnset = sHerdierLevelUpLearnset, + .teachableLearnset = sHerdierTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_STOUTLAND}), }, @@ -729,15 +819,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #else + .expYield = 221, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Stoutland"), @@ -755,17 +851,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stoutland, 64, 64), + .frontPic = gMonFrontPic_Stoutland, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Stoutland, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Stoutland, 64, 64), + .backPic = gMonBackPic_Stoutland, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Stoutland), - ICON(Stoutland, 2), - .footprint = gMonFootprint_Stoutland, - LEARNSETS(Stoutland), + .palette = gMonPalette_Stoutland, + .shinyPalette = gMonShinyPalette_Stoutland, + .iconSprite = gMonIcon_Stoutland, + .iconPalIndex = 2, + FOOTPRINT(Stoutland) + .levelUpLearnset = sStoutlandLevelUpLearnset, + .teachableLearnset = sStoutlandTeachableLearnset, }, #endif //P_FAMILY_LILLIPUP @@ -778,7 +879,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 66, .baseSpAttack = 50, .baseSpDefense = 37, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -786,7 +887,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Purrloin"), @@ -804,17 +905,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Purrloin, 48, 48), + .frontPic = gMonFrontPic_Purrloin, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Purrloin, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Purrloin, 56, 48), + .backPic = gMonBackPic_Purrloin, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Purrloin), - ICON(Purrloin, 0), - .footprint = gMonFootprint_Purrloin, - LEARNSETS(Purrloin), + .palette = gMonPalette_Purrloin, + .shinyPalette = gMonShinyPalette_Purrloin, + .iconSprite = gMonIcon_Purrloin, + .iconPalIndex = 0, + FOOTPRINT(Purrloin) + .levelUpLearnset = sPurrloinLevelUpLearnset, + .teachableLearnset = sPurrloinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LIEPARD}), }, @@ -826,7 +932,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 106, .baseSpAttack = 88, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 90, .expYield = 156, .evYield_Speed = 2, @@ -834,7 +940,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Liepard"), @@ -852,17 +958,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Liepard, 64, 64), + .frontPic = gMonFrontPic_Liepard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Liepard, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Liepard, 56, 48), + .backPic = gMonBackPic_Liepard, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Liepard), - ICON(Liepard, 0), - .footprint = gMonFootprint_Liepard, - LEARNSETS(Liepard), + .palette = gMonPalette_Liepard, + .shinyPalette = gMonShinyPalette_Liepard, + .iconSprite = gMonIcon_Liepard, + .iconPalIndex = 0, + FOOTPRINT(Liepard) + .levelUpLearnset = sLiepardLevelUpLearnset, + .teachableLearnset = sLiepardTeachableLearnset, }, #endif //P_FAMILY_PURRLOIN @@ -875,7 +986,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -883,7 +994,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Pansage"), @@ -901,17 +1012,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pansage, 40, 48), + .frontPic = gMonFrontPic_Pansage, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pansage, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Pansage, 48, 48), + .backPic = gMonBackPic_Pansage, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Pansage), - ICON(Pansage, 1), - .footprint = gMonFootprint_Pansage, - LEARNSETS(Pansage), + .palette = gMonPalette_Pansage, + .shinyPalette = gMonShinyPalette_Pansage, + .iconSprite = gMonIcon_Pansage, + .iconPalIndex = 1, + FOOTPRINT(Pansage) + .levelUpLearnset = sPansageLevelUpLearnset, + .teachableLearnset = sPansageTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SIMISAGE}), }, @@ -923,7 +1039,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -931,7 +1047,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Simisage"), @@ -949,17 +1065,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Simisage, 64, 64), + .frontPic = gMonFrontPic_Simisage, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Simisage, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Simisage, 56, 64), + .backPic = gMonBackPic_Simisage, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simisage), - ICON(Simisage, 1), - .footprint = gMonFootprint_Simisage, - LEARNSETS(Simisage), + .palette = gMonPalette_Simisage, + .shinyPalette = gMonShinyPalette_Simisage, + .iconSprite = gMonIcon_Simisage, + .iconPalIndex = 1, + FOOTPRINT(Simisage) + .levelUpLearnset = sSimisageLevelUpLearnset, + .teachableLearnset = sSimisageTeachableLearnset, }, #endif //P_FAMILY_PANSAGE @@ -972,7 +1093,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -980,7 +1101,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -999,17 +1120,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pansear, 48, 48), + .frontPic = gMonFrontPic_Pansear, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pansear, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pansear, 48, 56), + .backPic = gMonBackPic_Pansear, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Pansear), - ICON(Pansear, 2), - .footprint = gMonFootprint_Pansear, - LEARNSETS(Pansear), + .palette = gMonPalette_Pansear, + .shinyPalette = gMonShinyPalette_Pansear, + .iconSprite = gMonIcon_Pansear, + .iconPalIndex = 2, + FOOTPRINT(Pansear) + .levelUpLearnset = sPansearLevelUpLearnset, + .teachableLearnset = sPansearTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SIMISEAR}), }, @@ -1021,7 +1147,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1029,7 +1155,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -1048,17 +1174,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Simisear, 56, 56), + .frontPic = gMonFrontPic_Simisear, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Simisear, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Simisear, 64, 56), + .backPic = gMonBackPic_Simisear, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simisear), - ICON(Simisear, 2), - .footprint = gMonFootprint_Simisear, - LEARNSETS(Simisear), + .palette = gMonPalette_Simisear, + .shinyPalette = gMonShinyPalette_Simisear, + .iconSprite = gMonIcon_Simisear, + .iconPalIndex = 2, + FOOTPRINT(Simisear) + .levelUpLearnset = sSimisearLevelUpLearnset, + .teachableLearnset = sSimisearTeachableLearnset, }, #endif //P_FAMILY_PANSEAR @@ -1071,7 +1202,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -1079,7 +1210,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Panpour"), @@ -1097,17 +1228,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Panpour, 48, 48), + .frontPic = gMonFrontPic_Panpour, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Panpour, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Panpour, 48, 48), + .backPic = gMonBackPic_Panpour, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Panpour), - ICON(Panpour, 2), - .footprint = gMonFootprint_Panpour, - LEARNSETS(Panpour), + .palette = gMonPalette_Panpour, + .shinyPalette = gMonShinyPalette_Panpour, + .iconSprite = gMonIcon_Panpour, + .iconPalIndex = 2, + FOOTPRINT(Panpour) + .levelUpLearnset = sPanpourLevelUpLearnset, + .teachableLearnset = sPanpourTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_SIMIPOUR}), }, @@ -1119,7 +1255,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1127,7 +1263,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Simipour"), @@ -1145,17 +1281,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Simipour, 56, 56), + .frontPic = gMonFrontPic_Simipour, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Simipour, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Simipour, 64, 56), + .backPic = gMonBackPic_Simipour, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simipour), - ICON(Simipour, 2), - .footprint = gMonFootprint_Simipour, - LEARNSETS(Simipour), + .palette = gMonPalette_Simipour, + .shinyPalette = gMonShinyPalette_Simipour, + .iconSprite = gMonIcon_Simipour, + .iconPalIndex = 2, + FOOTPRINT(Simipour) + .levelUpLearnset = sSimipourLevelUpLearnset, + .teachableLearnset = sSimipourTeachableLearnset, }, #endif //P_FAMILY_PANPOUR @@ -1168,7 +1309,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 24, .baseSpAttack = 67, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, .expYield = 58, .evYield_HP = 1, @@ -1176,7 +1317,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Munna"), @@ -1194,18 +1335,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munna, 32, 32), + .frontPic = gMonFrontPic_Munna, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Munna, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Munna, 48, 32), + .backPic = gMonBackPic_Munna, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Munna), - ICON(Munna, 0), - .footprint = gMonFootprint_Munna, - LEARNSETS(Munna), + .palette = gMonPalette_Munna, + .shinyPalette = gMonShinyPalette_Munna, + .iconSprite = gMonIcon_Munna, + .iconPalIndex = 0, + FOOTPRINT(Munna) + .levelUpLearnset = sMunnaLevelUpLearnset, + .teachableLearnset = sMunnaTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_MUSHARNA}), }, @@ -1217,7 +1363,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 29, .baseSpAttack = 107, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 75, .expYield = 170, .evYield_HP = 2, @@ -1225,7 +1371,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Musharna"), @@ -1243,18 +1389,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Musharna, 64, 64), + .frontPic = gMonFrontPic_Musharna, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Musharna, .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, .enemyMonElevation = 5, - BACK_PIC(Musharna, 64, 64), + .backPic = gMonBackPic_Musharna, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_GROW, - PALETTES(Musharna), - ICON(Musharna, 0), - .footprint = gMonFootprint_Musharna, - LEARNSETS(Musharna), + .palette = gMonPalette_Musharna, + .shinyPalette = gMonShinyPalette_Musharna, + .iconSprite = gMonIcon_Musharna, + .iconPalIndex = 0, + FOOTPRINT(Musharna) + .levelUpLearnset = sMusharnaLevelUpLearnset, + .teachableLearnset = sMusharnaTeachableLearnset, }, #endif //P_FAMILY_MUNNA @@ -1267,7 +1418,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 43, .baseSpAttack = 36, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 53, .evYield_Attack = 1, @@ -1275,7 +1426,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pidove"), @@ -1293,17 +1444,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidove, 40, 40), + .frontPic = gMonFrontPic_Pidove, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pidove, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Pidove, 48, 40), + .backPic = gMonBackPic_Pidove, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Pidove), - ICON(Pidove, 0), - .footprint = gMonFootprint_Pidove, - LEARNSETS(Pidove), + .palette = gMonPalette_Pidove, + .shinyPalette = gMonShinyPalette_Pidove, + .iconSprite = gMonIcon_Pidove, + .iconPalIndex = 0, + FOOTPRINT(Pidove) + .levelUpLearnset = sPidoveLevelUpLearnset, + .teachableLearnset = sPidoveTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_TRANQUILL}), }, @@ -1315,7 +1471,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, .expYield = 125, .evYield_Attack = 2, @@ -1323,7 +1479,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Tranquill"), @@ -1341,17 +1497,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tranquill, 40, 56), + .frontPic = gMonFrontPic_Tranquill, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Tranquill, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Tranquill, 56, 48), + .backPic = gMonBackPic_Tranquill, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Tranquill), - ICON(Tranquill, 0), - .footprint = gMonFootprint_Tranquill, - LEARNSETS(Tranquill), + .palette = gMonPalette_Tranquill, + .shinyPalette = gMonShinyPalette_Tranquill, + .iconSprite = gMonIcon_Tranquill, + .iconPalIndex = 0, + FOOTPRINT(Tranquill) + .levelUpLearnset = sTranquillLevelUpLearnset, + .teachableLearnset = sTranquillTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_UNFEZANT}), }, @@ -1363,15 +1524,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 93, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 244, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 220, + #else + .expYield = 215, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Unfezant"), @@ -1389,21 +1556,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Unfezant, 56, 64), - FRONT_PIC_FEMALE(Unfezant, 56, 64), + .frontPic = gMonFrontPic_Unfezant, + .frontPicFemale = gMonFrontPic_UnfezantF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Unfezant, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Unfezant, 64, 64), - BACK_PIC_FEMALE(Unfezant, 64, 64), + .backPic = gMonBackPic_Unfezant, + .backPicFemale = gMonBackPic_UnfezantF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Unfezant), - PALETTE_FEMALE(Unfezant), - ICON(Unfezant, 1), - ICON_FEMALE(Unfezant, 1), - .footprint = gMonFootprint_Unfezant, - LEARNSETS(Unfezant), + .palette = gMonPalette_Unfezant, + .paletteFemale = gMonPalette_UnfezantF, + .shinyPalette = gMonShinyPalette_Unfezant, + .shinyPaletteFemale = gMonShinyPalette_UnfezantF, + .iconSprite = gMonIcon_Unfezant, + .iconSpriteFemale = gMonIcon_UnfezantF, + .iconPalIndex = 1, + .iconPalIndexFemale = 1, + FOOTPRINT(Unfezant) + .levelUpLearnset = sUnfezantLevelUpLearnset, + .teachableLearnset = sUnfezantTeachableLearnset, }, #endif //P_FAMILY_PIDOVE @@ -1416,7 +1592,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 76, .baseSpAttack = 50, .baseSpDefense = 32, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 59, .evYield_Speed = 1, @@ -1424,7 +1600,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Blitzle"), @@ -1442,17 +1618,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Blitzle, 40, 56), + .frontPic = gMonFrontPic_Blitzle, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Blitzle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Blitzle, 56, 56), + .backPic = gMonBackPic_Blitzle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Blitzle), - ICON(Blitzle, 2), - .footprint = gMonFootprint_Blitzle, - LEARNSETS(Blitzle), + .palette = gMonPalette_Blitzle, + .shinyPalette = gMonShinyPalette_Blitzle, + .iconSprite = gMonIcon_Blitzle, + .iconPalIndex = 2, + FOOTPRINT(Blitzle) + .levelUpLearnset = sBlitzleLevelUpLearnset, + .teachableLearnset = sBlitzleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_ZEBSTRIKA}), }, @@ -1464,7 +1645,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 116, .baseSpAttack = 80, .baseSpDefense = 63, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1472,7 +1653,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Zebstrika"), @@ -1490,17 +1671,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Zebstrika, 64, 64), + .frontPic = gMonFrontPic_Zebstrika, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zebstrika, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Zebstrika, 64, 64), + .backPic = gMonBackPic_Zebstrika, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Zebstrika), - ICON(Zebstrika, 2), - .footprint = gMonFootprint_Zebstrika, - LEARNSETS(Zebstrika), + .palette = gMonPalette_Zebstrika, + .shinyPalette = gMonShinyPalette_Zebstrika, + .iconSprite = gMonIcon_Zebstrika, + .iconPalIndex = 2, + FOOTPRINT(Zebstrika) + .levelUpLearnset = sZebstrikaLevelUpLearnset, + .teachableLearnset = sZebstrikaTeachableLearnset, }, #endif //P_FAMILY_BLITZLE @@ -1513,7 +1699,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 56, .evYield_Defense = 1, @@ -1523,7 +1709,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Roggenrola"), @@ -1541,17 +1727,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roggenrola, 24, 40), + .frontPic = gMonFrontPic_Roggenrola, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Roggenrola, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Roggenrola, 40, 48), + .backPic = gMonBackPic_Roggenrola, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Roggenrola), - ICON(Roggenrola, 2), - .footprint = gMonFootprint_Roggenrola, - LEARNSETS(Roggenrola), + .palette = gMonPalette_Roggenrola, + .shinyPalette = gMonShinyPalette_Roggenrola, + .iconSprite = gMonIcon_Roggenrola, + .iconPalIndex = 2, + FOOTPRINT(Roggenrola) + .levelUpLearnset = sRoggenrolaLevelUpLearnset, + .teachableLearnset = sRoggenrolaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLDORE}), }, @@ -1563,7 +1754,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 137, .evYield_Attack = 1, @@ -1574,7 +1765,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Boldore"), @@ -1592,17 +1783,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Boldore, 56, 48), + .frontPic = gMonFrontPic_Boldore, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Boldore, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Boldore, 64, 40), + .backPic = gMonBackPic_Boldore, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Boldore), - ICON(Boldore, 0), - .footprint = gMonFootprint_Boldore, - LEARNSETS(Boldore), + .palette = gMonPalette_Boldore, + .shinyPalette = gMonShinyPalette_Boldore, + .iconSprite = gMonIcon_Boldore, + .iconPalIndex = 0, + FOOTPRINT(Boldore) + .levelUpLearnset = sBoldoreLevelUpLearnset, + .teachableLearnset = sBoldoreTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GIGALITH}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GIGALITH}), }, @@ -1615,9 +1811,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 25, .baseSpAttack = 60, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 258, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 232, + #else + .expYield = 227, + #endif .evYield_Attack = 3, .itemCommon = ITEM_EVERSTONE, .itemRare = ITEM_HARD_STONE, @@ -1625,7 +1827,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SAND_STREAM, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gigalith"), @@ -1643,17 +1845,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Gigalith, 64, 64), + .frontPic = gMonFrontPic_Gigalith, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Gigalith, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Gigalith, 56, 64), + .backPic = gMonBackPic_Gigalith, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Gigalith), - ICON(Gigalith, 0), - .footprint = gMonFootprint_Gigalith, - LEARNSETS(Gigalith), + .palette = gMonPalette_Gigalith, + .shinyPalette = gMonShinyPalette_Gigalith, + .iconSprite = gMonIcon_Gigalith, + .iconPalIndex = 0, + FOOTPRINT(Gigalith) + .levelUpLearnset = sGigalithLevelUpLearnset, + .teachableLearnset = sGigalithTeachableLearnset, }, #endif //P_FAMILY_ROGGENROLA @@ -1666,15 +1873,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 72, .baseSpAttack = 55, .baseSpDefense = 43, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 65 : 63, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FLYING), .abilities = { ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Woobat"), @@ -1692,18 +1899,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Woobat, 64, 32), + .frontPic = gMonFrontPic_Woobat, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Woobat, .frontAnimId = ANIM_FOUR_PETAL, .enemyMonElevation = 19, - BACK_PIC(Woobat, 64, 32), + .backPic = gMonBackPic_Woobat, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Woobat), - ICON(Woobat, 0), - .footprint = gMonFootprint_Woobat, - LEARNSETS(Woobat), + .palette = gMonPalette_Woobat, + .shinyPalette = gMonShinyPalette_Woobat, + .iconSprite = gMonIcon_Woobat, + .iconPalIndex = 0, + FOOTPRINT(Woobat) + .levelUpLearnset = sWoobatLevelUpLearnset, + .teachableLearnset = sWoobatTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SWOOBAT}), }, @@ -1715,7 +1927,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 114, .baseSpAttack = 77, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 45, .expYield = 149, .evYield_Speed = 2, @@ -1723,7 +1935,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FLYING), .abilities = { ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swoobat"), @@ -1741,18 +1953,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swoobat, 64, 64), + .frontPic = gMonFrontPic_Swoobat, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Swoobat, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .enemyMonElevation = 10, - BACK_PIC(Swoobat, 64, 64), + .backPic = gMonBackPic_Swoobat, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Swoobat), - ICON(Swoobat, 0), - .footprint = gMonFootprint_Swoobat, - LEARNSETS(Swoobat), + .palette = gMonPalette_Swoobat, + .shinyPalette = gMonShinyPalette_Swoobat, + .iconSprite = gMonIcon_Swoobat, + .iconPalIndex = 0, + FOOTPRINT(Swoobat) + .levelUpLearnset = sSwoobatLevelUpLearnset, + .teachableLearnset = sSwoobatTeachableLearnset, }, #endif //P_FAMILY_WOOBAT @@ -1765,7 +1982,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 68, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 120, .expYield = 66, .evYield_Attack = 1, @@ -1773,7 +1990,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -1792,17 +2009,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drilbur, 48, 48), + .frontPic = gMonFrontPic_Drilbur, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Drilbur, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Drilbur, 64, 40), + .backPic = gMonBackPic_Drilbur, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Drilbur), - ICON(Drilbur, 0), - .footprint = gMonFootprint_Drilbur, - LEARNSETS(Drilbur), + .palette = gMonPalette_Drilbur, + .shinyPalette = gMonShinyPalette_Drilbur, + .iconSprite = gMonIcon_Drilbur, + .iconPalIndex = 0, + FOOTPRINT(Drilbur) + .levelUpLearnset = sDrilburLevelUpLearnset, + .teachableLearnset = sDrilburTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_EXCADRILL}), }, @@ -1814,7 +2036,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 88, .baseSpAttack = 50, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), .catchRate = 60, .expYield = 178, .evYield_Attack = 2, @@ -1822,7 +2044,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -1841,53 +2063,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Excadrill, 64, 64), + .frontPic = gMonFrontPic_Excadrill, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Excadrill, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Excadrill, 64, 64), + .backPic = gMonBackPic_Excadrill, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Excadrill), - ICON(Excadrill, 0), - .footprint = gMonFootprint_Excadrill, - LEARNSETS(Excadrill), + .palette = gMonPalette_Excadrill, + .shinyPalette = gMonShinyPalette_Excadrill, + .iconSprite = gMonIcon_Excadrill, + .iconPalIndex = 0, + FOOTPRINT(Excadrill) + .levelUpLearnset = sExcadrillLevelUpLearnset, + .teachableLearnset = sExcadrillTeachableLearnset, }, #endif //P_FAMILY_DRILBUR -#define AUDINO_MISC_INFO \ - .catchRate = 255, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_ORAN_BERRY, \ - .itemRare = ITEM_SITRUS_BERRY, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .speciesName = _("Audino"), \ - .natDexNum = NATIONAL_DEX_AUDINO, \ - .categoryName = _("Hearing"), \ - .footprint = gMonFootprint_Audino, \ - LEARNSETS(Audino), \ - .formSpeciesIdTable = sAudinoFormSpeciesIdTable, \ - .formChangeTable = sAudinoFormChangeTable - #if P_FAMILY_AUDINO [SPECIES_AUDINO] = { - AUDINO_MISC_INFO, .baseHP = 103, .baseAttack = 60, .baseDefense = 86, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 86, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, .expYield = 390, + .evYield_HP = 2, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_REGENERATOR, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Audino"), .cryId = CRY_AUDINO, + .natDexNum = NATIONAL_DEX_AUDINO, + .categoryName = _("Hearing"), .height = 11, .weight = 310, .description = COMPOUND_STRING( @@ -1899,32 +2119,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Audino, 40, 48), + .frontPic = gMonFrontPic_Audino, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Audino, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Audino, 56, 56), + .backPic = gMonBackPic_Audino, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Audino), - ICON(Audino, 1), + .palette = gMonPalette_Audino, + .shinyPalette = gMonShinyPalette_Audino, + .iconSprite = gMonIcon_Audino, + .iconPalIndex = 1, + FOOTPRINT(Audino) + .levelUpLearnset = sAudinoLevelUpLearnset, + .teachableLearnset = sAudinoTeachableLearnset, + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, + .formChangeTable = sAudinoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AUDINO_MEGA] = { - AUDINO_MISC_INFO, .baseHP = 103, .baseAttack = 60, .baseDefense = 126, .baseSpeed = 50, .baseSpAttack = 80, .baseSpDefense = 126, - .types = { TYPE_NORMAL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FAIRY), + .catchRate = 255, .expYield = 425, + .evYield_HP = 2, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_HEALER, ABILITY_HEALER }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Audino"), .cryId = CRY_AUDINO_MEGA, + .natDexNum = NATIONAL_DEX_AUDINO, + .categoryName = _("Hearing"), .height = 15, .weight = 320, .description = COMPOUND_STRING( @@ -1936,16 +2176,25 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AudinoMega, 48, 64), + .frontPic = gMonFrontPic_AudinoMega, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_AudinoMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AudinoMega, 56, 64), + .backPic = gMonBackPic_AudinoMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AudinoMega), - ICON(AudinoMega, 1), + .palette = gMonPalette_AudinoMega, + .shinyPalette = gMonShinyPalette_AudinoMega, + .iconSprite = gMonIcon_AudinoMega, + .iconPalIndex = 1, + FOOTPRINT(Audino) .isMegaEvolution = TRUE, + .levelUpLearnset = sAudinoLevelUpLearnset, + .teachableLearnset = sAudinoTeachableLearnset, + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, + .formChangeTable = sAudinoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_AUDINO @@ -1959,7 +2208,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 35, .baseSpAttack = 25, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 61, .evYield_Attack = 1, @@ -1967,7 +2216,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Timburr"), @@ -1985,17 +2234,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Timburr, 48, 40), + .frontPic = gMonFrontPic_Timburr, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Timburr, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Timburr, 64, 40), + .backPic = gMonBackPic_Timburr, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Timburr), - ICON(Timburr, 1), - .footprint = gMonFootprint_Timburr, - LEARNSETS(Timburr), + .palette = gMonPalette_Timburr, + .shinyPalette = gMonShinyPalette_Timburr, + .iconSprite = gMonIcon_Timburr, + .iconPalIndex = 1, + FOOTPRINT(Timburr) + .levelUpLearnset = sTimburrLevelUpLearnset, + .teachableLearnset = sTimburrTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GURDURR}), }, @@ -2007,7 +2261,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 90, .expYield = 142, .evYield_Attack = 2, @@ -2015,7 +2269,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Gurdurr"), @@ -2033,17 +2287,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gurdurr, 64, 64), + .frontPic = gMonFrontPic_Gurdurr, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gurdurr, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Gurdurr, 64, 48), + .backPic = gMonBackPic_Gurdurr, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Gurdurr), - ICON(Gurdurr, 1), - .footprint = gMonFootprint_Gurdurr, - LEARNSETS(Gurdurr), + .palette = gMonPalette_Gurdurr, + .shinyPalette = gMonShinyPalette_Gurdurr, + .iconSprite = gMonIcon_Gurdurr, + .iconPalIndex = 1, + FOOTPRINT(Gurdurr) + .levelUpLearnset = sGurdurrLevelUpLearnset, + .teachableLearnset = sGurdurrTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_CONKELDURR}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_CONKELDURR}), }, @@ -2056,15 +2315,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 227, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 253 : 227, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Conkeldurr"), @@ -2082,17 +2341,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Conkeldurr, 64, 56), + .frontPic = gMonFrontPic_Conkeldurr, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Conkeldurr, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Conkeldurr, 64, 56), + .backPic = gMonBackPic_Conkeldurr, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Conkeldurr), - ICON(Conkeldurr, 1), - .footprint = gMonFootprint_Conkeldurr, - LEARNSETS(Conkeldurr), + .palette = gMonPalette_Conkeldurr, + .shinyPalette = gMonShinyPalette_Conkeldurr, + .iconSprite = gMonIcon_Conkeldurr, + .iconPalIndex = 1, + FOOTPRINT(Conkeldurr) + .levelUpLearnset = sConkeldurrLevelUpLearnset, + .teachableLearnset = sConkeldurrTeachableLearnset, }, #endif //P_FAMILY_TIMBURR @@ -2105,7 +2369,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 59, .evYield_Speed = 1, @@ -2113,7 +2377,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tympole"), @@ -2131,17 +2395,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tympole, 40, 40), + .frontPic = gMonFrontPic_Tympole, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Tympole, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Tympole, 40, 32), + .backPic = gMonBackPic_Tympole, + .backPicSize = MON_COORDS_SIZE(40, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Tympole), - ICON(Tympole, 2), - .footprint = gMonFootprint_Tympole, - LEARNSETS(Tympole), + .palette = gMonPalette_Tympole, + .shinyPalette = gMonShinyPalette_Tympole, + .iconSprite = gMonIcon_Tympole, + .iconPalIndex = 2, + FOOTPRINT(Tympole) + .levelUpLearnset = sTympoleLevelUpLearnset, + .teachableLearnset = sTympoleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PALPITOAD}), }, @@ -2153,7 +2422,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 69, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 120, .expYield = 134, .evYield_HP = 2, @@ -2161,7 +2430,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Palpitoad"), @@ -2179,17 +2448,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Palpitoad, 40, 48), + .frontPic = gMonFrontPic_Palpitoad, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Palpitoad, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Palpitoad, 56, 40), + .backPic = gMonBackPic_Palpitoad, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Palpitoad), - ICON(Palpitoad, 2), - .footprint = gMonFootprint_Palpitoad, - LEARNSETS(Palpitoad), + .palette = gMonPalette_Palpitoad, + .shinyPalette = gMonShinyPalette_Palpitoad, + .iconSprite = gMonIcon_Palpitoad, + .iconPalIndex = 2, + FOOTPRINT(Palpitoad) + .levelUpLearnset = sPalpitoadLevelUpLearnset, + .teachableLearnset = sPalpitoadTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SEISMITOAD}), }, @@ -2201,15 +2475,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 74, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 229, + #else + .expYield = 225, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_POISON_TOUCH, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Seismitoad"), @@ -2227,17 +2507,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Seismitoad, 64, 64), + .frontPic = gMonFrontPic_Seismitoad, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Seismitoad, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Seismitoad, 64, 40), + .backPic = gMonBackPic_Seismitoad, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Seismitoad), - ICON(Seismitoad, 0), - .footprint = gMonFootprint_Seismitoad, - LEARNSETS(Seismitoad), + .palette = gMonPalette_Seismitoad, + .shinyPalette = gMonShinyPalette_Seismitoad, + .iconSprite = gMonIcon_Seismitoad, + .iconPalIndex = 0, + FOOTPRINT(Seismitoad) + .levelUpLearnset = sSeismitoadLevelUpLearnset, + .teachableLearnset = sSeismitoadTeachableLearnset, }, #endif //P_FAMILY_TYMPOLE @@ -2250,7 +2535,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 30, .baseSpDefense = 85, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 163, .evYield_HP = 2, @@ -2259,7 +2544,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Throh"), @@ -2277,17 +2562,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Throh, 64, 48), + .frontPic = gMonFrontPic_Throh, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Throh, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Throh, 64, 48), + .backPic = gMonBackPic_Throh, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Throh), - ICON(Throh, 0), - .footprint = gMonFootprint_Throh, - LEARNSETS(Throh), + .palette = gMonPalette_Throh, + .shinyPalette = gMonShinyPalette_Throh, + .iconSprite = gMonIcon_Throh, + .iconPalIndex = 0, + FOOTPRINT(Throh) + .levelUpLearnset = sThrohLevelUpLearnset, + .teachableLearnset = sThrohTeachableLearnset, }, #endif //P_FAMILY_THROH @@ -2300,7 +2590,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 85, .baseSpAttack = 30, .baseSpDefense = 75, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 163, .evYield_Attack = 2, @@ -2309,7 +2599,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STURDY, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -2328,17 +2618,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Sawk, 56, 56), + .frontPic = gMonFrontPic_Sawk, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Sawk, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Sawk, 64, 40), + .backPic = gMonBackPic_Sawk, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Sawk), - ICON(Sawk, 0), - .footprint = gMonFootprint_Sawk, - LEARNSETS(Sawk), + .palette = gMonPalette_Sawk, + .shinyPalette = gMonShinyPalette_Sawk, + .iconSprite = gMonIcon_Sawk, + .iconPalIndex = 0, + FOOTPRINT(Sawk) + .levelUpLearnset = sSawkLevelUpLearnset, + .teachableLearnset = sSawkTeachableLearnset, }, #endif //P_FAMILY_SAWK @@ -2351,7 +2646,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 255, .expYield = 62, .evYield_Defense = 1, @@ -2360,7 +2655,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sewaddle"), @@ -2378,17 +2673,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sewaddle, 40, 40), + .frontPic = gMonFrontPic_Sewaddle, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Sewaddle, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Sewaddle, 40, 48), + .backPic = gMonBackPic_Sewaddle, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sewaddle), - ICON(Sewaddle, 1), - .footprint = gMonFootprint_Sewaddle, - LEARNSETS(Sewaddle), + .palette = gMonPalette_Sewaddle, + .shinyPalette = gMonShinyPalette_Sewaddle, + .iconSprite = gMonIcon_Sewaddle, + .iconPalIndex = 1, + FOOTPRINT(Sewaddle) + .levelUpLearnset = sSewaddleLevelUpLearnset, + .teachableLearnset = sSewaddleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_SWADLOON}), }, @@ -2400,7 +2700,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 120, .expYield = 133, .evYield_Defense = 2, @@ -2409,7 +2709,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Swadloon"), @@ -2427,17 +2727,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swadloon, 56, 48), + .frontPic = gMonFrontPic_Swadloon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Swadloon, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Swadloon, 48, 48), + .backPic = gMonBackPic_Swadloon, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Swadloon), - ICON(Swadloon, 1), - .footprint = gMonFootprint_Swadloon, - LEARNSETS(Swadloon), + .palette = gMonPalette_Swadloon, + .shinyPalette = gMonShinyPalette_Swadloon, + .iconSprite = gMonIcon_Swadloon, + .iconPalIndex = 1, + FOOTPRINT(Swadloon) + .levelUpLearnset = sSwadloonLevelUpLearnset, + .teachableLearnset = sSwadloonTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LEAVANNY}), }, @@ -2449,16 +2754,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 92, .baseSpAttack = 70, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #else + .expYield = 221, + #endif .evYield_Attack = 3, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Leavanny"), @@ -2476,17 +2787,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Leavanny, 48, 64), + .frontPic = gMonFrontPic_Leavanny, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Leavanny, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Leavanny, 56, 64), + .backPic = gMonBackPic_Leavanny, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Leavanny), - ICON(Leavanny, 1), - .footprint = gMonFootprint_Leavanny, - LEARNSETS(Leavanny), + .palette = gMonPalette_Leavanny, + .shinyPalette = gMonShinyPalette_Leavanny, + .iconSprite = gMonIcon_Leavanny, + .iconPalIndex = 1, + FOOTPRINT(Leavanny) + .levelUpLearnset = sLeavannyLevelUpLearnset, + .teachableLearnset = sLeavannyTeachableLearnset, }, #endif //P_FAMILY_SEWADDLE @@ -2499,7 +2815,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 57, .baseSpAttack = 30, .baseSpDefense = 39, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, .expYield = 52, .evYield_Defense = 1, @@ -2508,12 +2824,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_RED, .speciesName = _("Venipede"), .cryId = CRY_VENIPEDE, @@ -2530,17 +2846,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Venipede, 48, 32), + .frontPic = gMonFrontPic_Venipede, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Venipede, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Venipede, 64, 40), + .backPic = gMonBackPic_Venipede, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Venipede), - ICON(Venipede, 1), - .footprint = gMonFootprint_Venipede, - LEARNSETS(Venipede), + .palette = gMonPalette_Venipede, + .shinyPalette = gMonShinyPalette_Venipede, + .iconSprite = gMonIcon_Venipede, + .iconPalIndex = 1, + FOOTPRINT(Venipede) + .levelUpLearnset = sVenipedeLevelUpLearnset, + .teachableLearnset = sVenipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_WHIRLIPEDE}), }, @@ -2552,7 +2873,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 47, .baseSpAttack = 40, .baseSpDefense = 79, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 120, .expYield = 126, .evYield_Defense = 2, @@ -2561,12 +2882,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Whirlipede"), .cryId = CRY_WHIRLIPEDE, @@ -2583,17 +2904,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whirlipede, 56, 40), + .frontPic = gMonFrontPic_Whirlipede, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Whirlipede, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Whirlipede, 64, 40), + .backPic = gMonBackPic_Whirlipede, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Whirlipede), - ICON(Whirlipede, 2), - .footprint = gMonFootprint_Whirlipede, - LEARNSETS(Whirlipede), + .palette = gMonPalette_Whirlipede, + .shinyPalette = gMonShinyPalette_Whirlipede, + .iconSprite = gMonIcon_Whirlipede, + .iconPalIndex = 2, + FOOTPRINT(Whirlipede) + .levelUpLearnset = sWhirlipedeLevelUpLearnset, + .teachableLearnset = sWhirlipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SCOLIPEDE}), }, @@ -2605,21 +2931,27 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 112, .baseSpAttack = 55, .baseSpDefense = 69, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 243, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 218, + #else + .expYield = 214, + #endif .evYield_Speed = 3, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_RED, .speciesName = _("Scolipede"), .cryId = CRY_SCOLIPEDE, @@ -2636,17 +2968,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Scolipede, 64, 64), + .frontPic = gMonFrontPic_Scolipede, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Scolipede, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Scolipede, 64, 64), + .backPic = gMonBackPic_Scolipede, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Scolipede), - ICON(Scolipede, 2), - .footprint = gMonFootprint_Scolipede, - LEARNSETS(Scolipede), + .palette = gMonPalette_Scolipede, + .shinyPalette = gMonShinyPalette_Scolipede, + .iconSprite = gMonIcon_Scolipede, + .iconPalIndex = 2, + FOOTPRINT(Scolipede) + .levelUpLearnset = sScolipedeLevelUpLearnset, + .teachableLearnset = sScolipedeTeachableLearnset, }, #endif //P_FAMILY_VENIPEDE @@ -2674,7 +3011,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_FAIRY), .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cottonee"), @@ -2692,17 +3029,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cottonee, 48, 32), + .frontPic = gMonFrontPic_Cottonee, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Cottonee, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cottonee, 64, 32), + .backPic = gMonBackPic_Cottonee, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Cottonee), - ICON(Cottonee, 1), - .footprint = gMonFootprint_Cottonee, - LEARNSETS(Cottonee), + .palette = gMonPalette_Cottonee, + .shinyPalette = gMonShinyPalette_Cottonee, + .iconSprite = gMonIcon_Cottonee, + .iconPalIndex = 1, + FOOTPRINT(Cottonee) + .levelUpLearnset = sCottoneeLevelUpLearnset, + .teachableLearnset = sCottoneeTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}), }, @@ -2723,7 +3065,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_FAIRY), .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Whimsicott"), @@ -2741,17 +3083,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whimsicott, 56, 56), + .frontPic = gMonFrontPic_Whimsicott, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Whimsicott, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Whimsicott, 64, 48), + .backPic = gMonBackPic_Whimsicott, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Whimsicott), - ICON(Whimsicott, 1), - .footprint = gMonFootprint_Whimsicott, - LEARNSETS(Whimsicott), + .palette = gMonPalette_Whimsicott, + .shinyPalette = gMonShinyPalette_Whimsicott, + .iconSprite = gMonIcon_Whimsicott, + .iconPalIndex = 1, + FOOTPRINT(Whimsicott) + .levelUpLearnset = sWhimsicottLevelUpLearnset, + .teachableLearnset = sWhimsicottTeachableLearnset, }, #endif //P_FAMILY_COTTONEE @@ -2764,7 +3111,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 56, .evYield_SpAttack = 1, @@ -2773,7 +3120,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Petilil"), @@ -2791,51 +3138,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Petilil, 32, 48), + .frontPic = gMonFrontPic_Petilil, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Petilil, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .enemyMonElevation = 7, - BACK_PIC(Petilil, 40, 56), + .backPic = gMonBackPic_Petilil, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Petilil), - ICON(Petilil, 1), - .footprint = gMonFootprint_Petilil, - LEARNSETS(Petilil), + .palette = gMonPalette_Petilil, + .shinyPalette = gMonShinyPalette_Petilil, + .iconSprite = gMonIcon_Petilil, + .iconPalIndex = 1, + FOOTPRINT(Petilil) + .levelUpLearnset = sPetililLevelUpLearnset, + .teachableLearnset = sPetililTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_LILLIGANT}, {EVO_NONE, 0, SPECIES_LILLIGANT_HISUIAN}), }, -#define LILLIGANT_MISC_INFO \ - .catchRate = 75, \ - .expYield = 168, \ - .itemRare = ITEM_ABSORB_BULB, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE, \ - .speciesName = _("Lilligant"), \ - .cryId = CRY_LILLIGANT, \ - .natDexNum = NATIONAL_DEX_LILLIGANT, \ - .footprint = gMonFootprint_Lilligant, \ - .formSpeciesIdTable = sLilligantFormSpeciesIdTable - [SPECIES_LILLIGANT] = { - LILLIGANT_MISC_INFO, .baseHP = 70, .baseAttack = 60, .baseDefense = 75, .baseSpeed = 90, .baseSpAttack = 110, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = 168, .evYield_SpAttack = 2, + .itemRare = ITEM_ABSORB_BULB, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Lilligant"), + .cryId = CRY_LILLIGANT, + .natDexNum = NATIONAL_DEX_LILLIGANT, .categoryName = _("Flowering"), .height = 11, .weight = 163, @@ -2848,32 +3195,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lilligant, 56, 64), + .frontPic = gMonFrontPic_Lilligant, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Lilligant, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lilligant, 64, 56), + .backPic = gMonBackPic_Lilligant, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Lilligant), - ICON(Lilligant, 1), - LEARNSETS(Lilligant), + .palette = gMonPalette_Lilligant, + .shinyPalette = gMonShinyPalette_Lilligant, + .iconSprite = gMonIcon_Lilligant, + .iconPalIndex = 1, + FOOTPRINT(Lilligant) + .levelUpLearnset = sLilligantLevelUpLearnset, + .teachableLearnset = sLilligantTeachableLearnset, + .formSpeciesIdTable = sLilligantFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_LILLIGANT_HISUIAN] = { - LILLIGANT_MISC_INFO, .baseHP = 70, .baseAttack = 105, .baseDefense = 75, .baseSpeed = 105, .baseSpAttack = 50, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), + .catchRate = 75, + .expYield = 168, .evYield_Attack = 1, .evYield_Speed = 1, + .itemRare = ITEM_ABSORB_BULB, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_HUSTLE, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Lilligant"), + .cryId = CRY_LILLIGANT, + .natDexNum = NATIONAL_DEX_LILLIGANT, .categoryName = _("Spinning"), .height = 12, .weight = 192, @@ -2886,194 +3252,302 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LilligantHisuian, 56, 64), + .frontPic = gMonFrontPic_LilligantHisuian, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LilligantHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LilligantHisuian, 56, 56), + .backPic = gMonBackPic_LilligantHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LilligantHisuian), - ICON(LilligantHisuian, 1), - LEARNSETS(LilligantHisuian), + .palette = gMonPalette_LilligantHisuian, + .shinyPalette = gMonShinyPalette_LilligantHisuian, + .iconSprite = gMonIcon_LilligantHisuian, + .iconPalIndex = 1, + FOOTPRINT(Lilligant) .isHisuianForm = TRUE, + .levelUpLearnset = sLilligantHisuianLevelUpLearnset, + .teachableLearnset = sLilligantHisuianTeachableLearnset, + .formSpeciesIdTable = sLilligantFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_PETILIL #if P_FAMILY_BASCULIN -#define BASCULIN_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 92, \ - .baseDefense = 65, \ - .baseSpeed = 98, \ - .baseSpAttack = 80, \ - .baseSpDefense = 55, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 190, \ - .expYield = 161, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Basculin"), \ - .cryId = CRY_BASCULIN, \ - .natDexNum = NATIONAL_DEX_BASCULIN, \ - .height = 10, \ - .weight = 180, \ - .pokemonScale = 316, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - .enemyMonElevation = 6, \ - .footprint = gMonFootprint_Basculin, \ - .formSpeciesIdTable = sBasculinFormSpeciesIdTable - [SPECIES_BASCULIN_RED_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_RECKLESS, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Hostile"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "It used to be a common food source. The\n" "meat of red Basculin is on the fatty side\n" "and it's more popular with the youth.\n" "Its temperament is vicious and aggressive."), - FRONT_PIC(BasculinRedStriped, 56, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinRedStriped, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinRedStriped, 64, 48), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinRedStriped, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinRedStriped), - ICON(BasculinRedStriped, 1), - LEARNSETS(Basculin), + .palette = gMonPalette_BasculinRedStriped, + .shinyPalette = gMonShinyPalette_BasculinRedStriped, + .iconSprite = gMonIcon_BasculinRedStriped, + .iconPalIndex = 1, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinLevelUpLearnset, + .teachableLearnset = sBasculinTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, }, [SPECIES_BASCULIN_BLUE_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROCK_HEAD, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Hostile"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "They form schools with others of the same\n" "color. The greatest foe of a school of blue\n" "Basculin is a school of red Basculin.\n" "Its flavor is light and inoffensive."), - FRONT_PIC(BasculinBlueStriped, 56, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinBlueStriped, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinBlueStriped, 64, 48), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinBlueStriped, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinBlueStriped), - ICON(BasculinBlueStriped, 0), - LEARNSETS(Basculin), + .palette = gMonPalette_BasculinBlueStriped, + .shinyPalette = gMonShinyPalette_BasculinBlueStriped, + .iconSprite = gMonIcon_BasculinBlueStriped, + .iconPalIndex = 0, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinLevelUpLearnset, + .teachableLearnset = sBasculinTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_BASCULIN_WHITE_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Mellow"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "While this ancient form of Basculin shares\n" "a vast array of qualities with other forms,\n" "it differs in several respects, including\n" "demeanor, being much gentler than others."), - FRONT_PIC(BasculinWhiteStriped, 48, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinWhiteStriped, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinWhiteStriped, 64, 40), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinWhiteStriped, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinWhiteStriped), - ICON(BasculinWhiteStriped, 0), - LEARNSETS(BasculinWhiteStriped), - .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BASCULEGION_MALE}, - {EVO_NONE, 0, SPECIES_BASCULEGION_FEMALE}), + .palette = gMonPalette_BasculinWhiteStriped, + .shinyPalette = gMonShinyPalette_BasculinWhiteStriped, + .iconSprite = gMonIcon_BasculinWhiteStriped, + .iconPalIndex = 0, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinWhiteStripedLevelUpLearnset, + .teachableLearnset = sBasculinWhiteStripedTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_LEVEL_RECOIL_DAMAGE_MALE, 294, SPECIES_BASCULEGION_MALE}, + {EVO_LEVEL_RECOIL_DAMAGE_FEMALE, 294, SPECIES_BASCULEGION_FEMALE}), }, -#define BASCULEGION_MISC_INFO \ - .types = { TYPE_WATER, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_HP = 3, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Bsculegion"), \ - .cryId = CRY_BASCULEGION, \ - .natDexNum = NATIONAL_DEX_BASCULEGION, \ - .categoryName = _("Big Fish"), \ - .height = 30, \ - .weight = 1100, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Basculegion, \ - .frontPicYOffset = 0, \ - .enemyMonElevation = 5, \ - .backPicYOffset = 0, \ - LEARNSETS(Basculegion), \ - .formSpeciesIdTable = sBasculegionFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Basculegion, - [SPECIES_BASCULEGION_MALE] = { - BASCULEGION_MISC_INFO, .baseHP = 120, .baseAttack = 112, .baseDefense = 65, .baseSpeed = 78, .baseSpAttack = 80, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), + .catchRate = 45, + .expYield = 265, + .evYield_HP = 3, .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Bsculegion"), + .cryId = CRY_BASCULEGION, + .natDexNum = NATIONAL_DEX_BASCULEGION, + .categoryName = _("Big Fish"), + .height = 30, + .weight = 1100, .description = COMPOUND_STRING( "Clads itself in the souls of comrades that\n" "perished before fulfilling their goals of\n" "journeying upstream. No other species in\n" "all Hisui's rivers is Basculegion's equal."), - FRONT_PIC(BasculegionMale, 64, 64), - BACK_PIC(BasculegionMale, 64, 64), - PALETTES(BasculegionMale), - ICON(BasculegionMale, 1), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculegionMale, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Basculegion, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + .backPic = gMonBackPic_BasculegionMale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_BasculegionMale, + .shinyPalette = gMonShinyPalette_BasculegionMale, + .iconSprite = gMonIcon_BasculegionMale, + .iconPalIndex = 1, + //FOOTPRINT(Basculegion), + .levelUpLearnset = sBasculegionLevelUpLearnset, + .teachableLearnset = sBasculegionTeachableLearnset, + .formSpeciesIdTable = sBasculegionFormSpeciesIdTable, }, [SPECIES_BASCULEGION_FEMALE] = { - BASCULEGION_MISC_INFO, .baseHP = 120, .baseAttack = 92, .baseDefense = 65, .baseSpeed = 78, .baseSpAttack = 100, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), + .catchRate = 45, + .expYield = 265, + .evYield_HP = 3, .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Bsculegion"), + .cryId = CRY_BASCULEGION, + .natDexNum = NATIONAL_DEX_BASCULEGION, + .categoryName = _("Big Fish"), + .height = 30, + .weight = 1100, .description = COMPOUND_STRING( "The souls of its comrades cloak its\n" "body and propel it effortlessly\n" "through even raging rapids."), - FRONT_PIC(BasculegionFemale, 64, 64), - BACK_PIC(BasculegionFemale, 64, 64), - PALETTES(BasculegionFemale), - ICON(BasculegionFemale, 0), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculegionFemale, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Basculegion, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + .backPic = gMonBackPic_BasculegionFemale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_BasculegionFemale, + .shinyPalette = gMonShinyPalette_BasculegionFemale, + .iconSprite = gMonIcon_BasculegionFemale, + .iconPalIndex = 0, + //FOOTPRINT(Basculegion), + .levelUpLearnset = sBasculegionLevelUpLearnset, + .teachableLearnset = sBasculegionTeachableLearnset, + .formSpeciesIdTable = sBasculegionFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BASCULIN @@ -3087,7 +3561,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 180, .expYield = 58, .evYield_Attack = 1, @@ -3096,7 +3570,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sandile"), @@ -3114,17 +3588,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandile, 48, 32), + .frontPic = gMonFrontPic_Sandile, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Sandile, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sandile, 64, 32), + .backPic = gMonBackPic_Sandile, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sandile), - ICON(Sandile, 1), - .footprint = gMonFootprint_Sandile, - LEARNSETS(Sandile), + .palette = gMonPalette_Sandile, + .shinyPalette = gMonShinyPalette_Sandile, + .iconSprite = gMonIcon_Sandile, + .iconPalIndex = 1, + FOOTPRINT(Sandile) + .levelUpLearnset = sSandileLevelUpLearnset, + .teachableLearnset = sSandileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 29, SPECIES_KROKOROK}), }, @@ -3136,7 +3615,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 74, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 90, .expYield = 123, .evYield_Attack = 2, @@ -3145,7 +3624,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Krokorok"), @@ -3163,17 +3642,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Krokorok, 64, 56), + .frontPic = gMonFrontPic_Krokorok, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Krokorok, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Krokorok, 56, 64), + .backPic = gMonBackPic_Krokorok, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Krokorok), - ICON(Krokorok, 1), - .footprint = gMonFootprint_Krokorok, - LEARNSETS(Krokorok), + .palette = gMonPalette_Krokorok, + .shinyPalette = gMonShinyPalette_Krokorok, + .iconSprite = gMonIcon_Krokorok, + .iconPalIndex = 1, + FOOTPRINT(Krokorok) + .levelUpLearnset = sKrokorokLevelUpLearnset, + .teachableLearnset = sKrokorokTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KROOKODILE}), }, @@ -3185,16 +3669,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 92, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 260, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 234, + #else + .expYield = 229, + #endif .evYield_Attack = 3, .itemCommon = ITEM_BLACK_GLASSES, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Krookodile"), @@ -3212,49 +3702,49 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Krookodile, 64, 64), + .frontPic = gMonFrontPic_Krookodile, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Krookodile, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Krookodile, 64, 56), + .backPic = gMonBackPic_Krookodile, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Krookodile), - ICON(Krookodile, 0), - .footprint = gMonFootprint_Krookodile, - LEARNSETS(Krookodile), + .palette = gMonPalette_Krookodile, + .shinyPalette = gMonShinyPalette_Krookodile, + .iconSprite = gMonIcon_Krookodile, + .iconPalIndex = 0, + FOOTPRINT(Krookodile) + .levelUpLearnset = sKrookodileLevelUpLearnset, + .teachableLearnset = sKrookodileTeachableLearnset, }, #endif //P_FAMILY_SANDILE #if P_FAMILY_DARUMAKA -#define DARUMAKA_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 90, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 15, \ - .baseSpDefense = 45, \ - .catchRate = 120, \ - .expYield = 63, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, \ - .speciesName = _("Darumaka"), \ - .cryId = CRY_DARUMAKA, \ - .natDexNum = NATIONAL_DEX_DARUMAKA, \ - .categoryName = _("Zen Charm"), \ - .footprint = gMonFootprint_Darumaka, \ - .formSpeciesIdTable = sDarumakaFormSpeciesIdTable - [SPECIES_DARUMAKA] = { - DARUMAKA_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 15, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 120, + .expYield = 63, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Darumaka"), + .cryId = CRY_DARUMAKA, + .natDexNum = NATIONAL_DEX_DARUMAKA, + .categoryName = _("Zen Charm"), .height = 6, .weight = 375, .description = COMPOUND_STRING( @@ -3266,116 +3756,157 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Darumaka, 40, 40), + .frontPic = gMonFrontPic_Darumaka, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Darumaka, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Darumaka, 56, 48), + .backPic = gMonBackPic_Darumaka, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Darumaka), - ICON(Darumaka, 0), - LEARNSETS(Darumaka), + .palette = gMonPalette_Darumaka, + .shinyPalette = gMonShinyPalette_Darumaka, + .iconSprite = gMonIcon_Darumaka, + .iconPalIndex = 0, + FOOTPRINT(Darumaka) + .levelUpLearnset = sDarumakaLevelUpLearnset, + .teachableLearnset = sDarumakaTeachableLearnset, + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DARMANITAN_STANDARD_MODE}), }, -#define DARMANITAN_MISC_INFO \ - .catchRate = 60, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Darmanitan"), \ - .cryId = CRY_DARMANITAN, \ - .natDexNum = NATIONAL_DEX_DARMANITAN, \ - .footprint = gMonFootprint_Darmanitan, \ - .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable - -#define DARMANITAN_STANDARD_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 140, \ - .baseDefense = 55, \ - .baseSpeed = 95, \ - .baseSpAttack = 30, \ - .baseSpDefense = 55, \ - .expYield = 168, \ - .evYield_Attack = 2, \ - DARMANITAN_MISC_INFO - -#define DARMANITAN_ZEN_MODE_MISC_INFO \ - .expYield = 189, \ - .evYield_SpAttack = 2, \ - .categoryName = _("Blazing"), \ - DARMANITAN_MISC_INFO - -#define DARMANITAN_UNOVAN_MISC_INFO \ - .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE },\ - .height = 13, \ - .weight = 929, \ - .pokemonScale = 272, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - LEARNSETS(Darmanitan), \ - .formChangeTable = sDarmanitanFormChangeTable - [SPECIES_DARMANITAN_STANDARD_MODE] = { - DARMANITAN_STANDARD_MISC_INFO, - DARMANITAN_UNOVAN_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 55, + .baseSpeed = 95, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 60, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, .categoryName = _("Blazing"), + .height = 13, + .weight = 929, .description = COMPOUND_STRING( "When one is injured in a fierce battle,\n" "it transforms into a stone statue.\n" "Then it meditates and sharpens its\n" "mind and fights on mentally."), - FRONT_PIC(DarmanitanStandardMode, 56, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanStandardMode, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_DarmanitanStandardMode, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(DarmanitanStandardMode, 64, 64), + .backPic = gMonBackPic_DarmanitanStandardMode, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(DarmanitanStandardMode), - ICON(DarmanitanStandardMode, 0), + .palette = gMonPalette_DarmanitanStandardMode, + .shinyPalette = gMonShinyPalette_DarmanitanStandardMode, + .iconSprite = gMonIcon_DarmanitanStandardMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .levelUpLearnset = sDarmanitanLevelUpLearnset, + .teachableLearnset = sDarmanitanTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanFormChangeTable, }, [SPECIES_DARMANITAN_ZEN_MODE] = { - DARMANITAN_ZEN_MODE_MISC_INFO, - DARMANITAN_UNOVAN_MISC_INFO, .baseHP = 105, .baseAttack = 30, .baseDefense = 105, .baseSpeed = 55, .baseSpAttack = 140, .baseSpDefense = 105, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 189 : 168, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, + .categoryName = _("Blazing"), + .height = 13, + .weight = 929, .description = COMPOUND_STRING( "When wounded, it stops moving. It\n" "goes as still as stone to meditate,\n" "sharpening its mind and spirit."), - FRONT_PIC(DarmanitanZenMode, 40, 40), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanZenMode, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_DarmanitanZenMode, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DarmanitanZenMode, 56, 48), + .backPic = gMonBackPic_DarmanitanZenMode, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(DarmanitanZenMode), - ICON(DarmanitanZenMode, 0), + .palette = gMonPalette_DarmanitanZenMode, + .shinyPalette = gMonShinyPalette_DarmanitanZenMode, + .iconSprite = gMonIcon_DarmanitanZenMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .levelUpLearnset = sDarmanitanLevelUpLearnset, + .teachableLearnset = sDarmanitanTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanFormChangeTable, }, #if P_GALARIAN_FORMS [SPECIES_DARUMAKA_GALARIAN] = { - DARUMAKA_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 15, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 120, + .expYield = 63, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darumaka"), + .cryId = CRY_DARUMAKA, + .natDexNum = NATIONAL_DEX_DARUMAKA, + .categoryName = _("Zen Charm"), .height = 7, .weight = 400, .description = COMPOUND_STRING( @@ -3387,80 +3918,135 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(DarumakaGalarian, 40, 40), + .frontPic = gMonFrontPic_DarumakaGalarian, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_DarumakaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarumakaGalarian, 56, 48), + .backPic = gMonBackPic_DarumakaGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarumakaGalarian), - ICON(DarumakaGalarian, 0), - LEARNSETS(DarumakaGalarian), + .palette = gMonPalette_DarumakaGalarian, + .shinyPalette = gMonShinyPalette_DarumakaGalarian, + .iconSprite = gMonIcon_DarumakaGalarian, + .iconPalIndex = 0, + FOOTPRINT(Darumaka) .isGalarianForm = TRUE, + .levelUpLearnset = sDarumakaGalarianLevelUpLearnset, + .teachableLearnset = sDarumakaGalarianTeachableLearnset, + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}), }, -#define DARMANITAN_GALARIAN_MISC_INFO \ - .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE },\ - .bodyColor = BODY_COLOR_WHITE, \ - .height = 17, \ - .weight = 1200, \ - .pokemonScale = 272, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - LEARNSETS(DarmanitanGalarian), \ - .formChangeTable = sDarmanitanGalarianFormChangeTable, \ - .isGalarianForm = TRUE - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = { - DARMANITAN_GALARIAN_MISC_INFO, - DARMANITAN_STANDARD_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 55, + .baseSpeed = 95, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, .categoryName = _("Zen Charm"), + .height = 17, + .weight = 1200, .description = COMPOUND_STRING( "On days when blizzards blow\n" "through, it comes down to where people\n" "live. It stashes food in the snowball on\n" "its head, taking it home for later."), - FRONT_PIC(DarmanitanGalarianStandardMode, 56, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanGalarianStandardMode, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DarmanitanGalarianStandardMode, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarmanitanGalarianStandardMode, 56, 64), + .backPic = gMonBackPic_DarmanitanGalarianStandardMode, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarmanitanGalarianStandardMode), - ICON(DarmanitanGalarianStandardMode, 0), + .palette = gMonPalette_DarmanitanGalarianStandardMode, + .shinyPalette = gMonShinyPalette_DarmanitanGalarianStandardMode, + .iconSprite = gMonIcon_DarmanitanGalarianStandardMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .isGalarianForm = TRUE, + .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanGalarianFormChangeTable, }, [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = { - DARMANITAN_GALARIAN_MISC_INFO, - DARMANITAN_ZEN_MODE_MISC_INFO, .baseHP = 105, .baseAttack = 160, .baseDefense = 55, .baseSpeed = 135, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_ICE, TYPE_FIRE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 189 : 168, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, + .categoryName = _("Blazing"), + .height = 17, + .weight = 1200, .description = COMPOUND_STRING( "Darmanitan takes this form when\n" "enraged. It won't stop spewing flames\n" "until its rage has settled, even if\n" "its body starts to melt."), - FRONT_PIC(DarmanitanGalarianZenMode, 48, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanGalarianZenMode, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_DarmanitanGalarianZenMode, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarmanitanGalarianZenMode, 64, 64), + .backPic = gMonBackPic_DarmanitanGalarianZenMode, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarmanitanGalarianZenMode), - ICON(DarmanitanGalarianZenMode, 0), + .palette = gMonPalette_DarmanitanGalarianZenMode, + .shinyPalette = gMonShinyPalette_DarmanitanGalarianZenMode, + .iconSprite = gMonIcon_DarmanitanGalarianZenMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .isGalarianForm = TRUE, + .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanGalarianFormChangeTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA @@ -3474,7 +4060,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 106, .baseSpDefense = 67, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, .expYield = 161, .evYield_SpAttack = 2, @@ -3483,7 +4069,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CHLOROPHYLL, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Maractus"), @@ -3501,17 +4087,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 6, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Maractus, 56, 64), + .frontPic = gMonFrontPic_Maractus, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Maractus, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Maractus, 64, 64), + .backPic = gMonBackPic_Maractus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Maractus), - ICON(Maractus, 1), - .footprint = gMonFootprint_Maractus, - LEARNSETS(Maractus), + .palette = gMonPalette_Maractus, + .shinyPalette = gMonShinyPalette_Maractus, + .iconSprite = gMonIcon_Maractus, + .iconPalIndex = 1, + FOOTPRINT(Maractus) + .levelUpLearnset = sMaractusLevelUpLearnset, + .teachableLearnset = sMaractusTeachableLearnset, }, #endif //P_FAMILY_MARACTUS @@ -3524,7 +4115,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 190, .expYield = 65, .evYield_Defense = 1, @@ -3533,7 +4124,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Dwebble"), @@ -3551,17 +4142,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dwebble, 40, 40), + .frontPic = gMonFrontPic_Dwebble, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Dwebble, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dwebble, 56, 32), + .backPic = gMonBackPic_Dwebble, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dwebble), - ICON(Dwebble, 0), - .footprint = gMonFootprint_Dwebble, - LEARNSETS(Dwebble), + .palette = gMonPalette_Dwebble, + .shinyPalette = gMonShinyPalette_Dwebble, + .iconSprite = gMonIcon_Dwebble, + .iconPalIndex = 0, + FOOTPRINT(Dwebble) + .levelUpLearnset = sDwebbleLevelUpLearnset, + .teachableLearnset = sDwebbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_CRUSTLE}), }, @@ -3573,16 +4169,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 75, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 170 : 166, .evYield_Defense = 2, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crustle"), @@ -3600,17 +4196,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Crustle, 64, 64), + .frontPic = gMonFrontPic_Crustle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Crustle, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Crustle, 64, 56), + .backPic = gMonBackPic_Crustle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Crustle), - ICON(Crustle, 2), - .footprint = gMonFootprint_Crustle, - LEARNSETS(Crustle), + .palette = gMonPalette_Crustle, + .shinyPalette = gMonShinyPalette_Crustle, + .iconSprite = gMonIcon_Crustle, + .iconPalIndex = 2, + FOOTPRINT(Crustle) + .levelUpLearnset = sCrustleLevelUpLearnset, + .teachableLearnset = sCrustleTeachableLearnset, }, #endif //P_FAMILY_DWEBBLE @@ -3623,7 +4224,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 48, .baseSpAttack = 35, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIGHTING), .catchRate = 180, .expYield = 70, .evYield_Attack = 1, @@ -3632,7 +4233,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Scraggy"), @@ -3650,17 +4251,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scraggy, 40, 48), + .frontPic = gMonFrontPic_Scraggy, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Scraggy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Scraggy, 48, 56), + .backPic = gMonBackPic_Scraggy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Scraggy), - ICON(Scraggy, 2), - .footprint = gMonFootprint_Scraggy, - LEARNSETS(Scraggy), + .palette = gMonPalette_Scraggy, + .shinyPalette = gMonShinyPalette_Scraggy, + .iconSprite = gMonIcon_Scraggy, + .iconPalIndex = 2, + FOOTPRINT(Scraggy) + .levelUpLearnset = sScraggyLevelUpLearnset, + .teachableLearnset = sScraggyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_SCRAFTY}), }, @@ -3672,7 +4278,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 58, .baseSpAttack = 45, .baseSpDefense = 115, - .types = { TYPE_DARK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIGHTING), .catchRate = 90, .expYield = 171, .evYield_Defense = 1, @@ -3682,7 +4288,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Scrafty"), @@ -3700,17 +4306,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scrafty, 48, 56), + .frontPic = gMonFrontPic_Scrafty, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Scrafty, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scrafty, 48, 64), + .backPic = gMonBackPic_Scrafty, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_GROW, - PALETTES(Scrafty), - ICON(Scrafty, 0), - .footprint = gMonFootprint_Scrafty, - LEARNSETS(Scrafty), + .palette = gMonPalette_Scrafty, + .shinyPalette = gMonShinyPalette_Scrafty, + .iconSprite = gMonIcon_Scrafty, + .iconPalIndex = 0, + FOOTPRINT(Scrafty) + .levelUpLearnset = sScraftyLevelUpLearnset, + .teachableLearnset = sScraftyTeachableLearnset, }, #endif //P_FAMILY_SCRAGGY @@ -3723,7 +4334,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 97, .baseSpAttack = 103, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 45, .expYield = 172, .evYield_SpAttack = 2, @@ -3731,7 +4342,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_WONDER_SKIN, ABILITY_MAGIC_GUARD, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Sigilyph"), @@ -3749,73 +4360,80 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Sigilyph, 64, 64), + .frontPic = gMonFrontPic_Sigilyph, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sigilyph, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(Sigilyph, 64, 64), + .backPic = gMonBackPic_Sigilyph, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Sigilyph), - ICON(Sigilyph, 0), - .footprint = gMonFootprint_Sigilyph, - LEARNSETS(Sigilyph), + .palette = gMonPalette_Sigilyph, + .shinyPalette = gMonShinyPalette_Sigilyph, + .iconSprite = gMonIcon_Sigilyph, + .iconPalIndex = 0, + FOOTPRINT(Sigilyph) + .levelUpLearnset = sSigilyphLevelUpLearnset, + .teachableLearnset = sSigilyphTeachableLearnset, }, #endif //P_FAMILY_SIGILYPH #if P_FAMILY_YAMASK -#define YAMASK_MISC_INFO \ - .catchRate = 190, \ - .expYield = 61, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Yamask"), \ - .cryId = CRY_YAMASK, \ - .natDexNum = NATIONAL_DEX_YAMASK, \ - .categoryName = _("Spirit"), \ - .height = 5, \ - .weight = 15, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Yamask, \ - .formSpeciesIdTable = sYamaskFormSpeciesIdTable - [SPECIES_YAMASK] = { - YAMASK_MISC_INFO, .baseHP = 38, .baseAttack = 30, .baseDefense = 85, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, .itemRare = ITEM_SPELL_TAG, - .abilities = { ABILITY_MUMMY, ABILITY_NONE }, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MUMMY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Yamask"), + .cryId = CRY_YAMASK, + .natDexNum = NATIONAL_DEX_YAMASK, + .categoryName = _("Spirit"), + .height = 5, + .weight = 15, .description = COMPOUND_STRING( "These Pokémon arose from the spirits\n" "of people interred in graves in past ages.\n" "Each of them carries a mask that used\n" "to be its face when it was human."), - FRONT_PIC(Yamask, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Yamask, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Yamask, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Yamask, 40, 40), + .backPic = gMonBackPic_Yamask, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Yamask), - ICON(Yamask, 0), - LEARNSETS(Yamask), + .palette = gMonPalette_Yamask, + .shinyPalette = gMonShinyPalette_Yamask, + .iconSprite = gMonIcon_Yamask, + .iconPalIndex = 0, + FOOTPRINT(Yamask) + .levelUpLearnset = sYamaskLevelUpLearnset, + .teachableLearnset = sYamaskTeachableLearnset, + .formSpeciesIdTable = sYamaskFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COFAGRIGUS}), }, @@ -3827,7 +4445,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 95, .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -3836,8 +4454,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_MUMMY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MUMMY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cofagrigus"), .cryId = CRY_COFAGRIGUS, @@ -3854,48 +4472,78 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Cofagrigus, 64, 64), + .frontPic = gMonFrontPic_Cofagrigus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cofagrigus, .frontAnimId = ANIM_GLOW_BLACK, - BACK_PIC(Cofagrigus, 56, 56), + .backPic = gMonBackPic_Cofagrigus, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Cofagrigus), - ICON(Cofagrigus, 0), - .footprint = gMonFootprint_Cofagrigus, - LEARNSETS(Cofagrigus), + .palette = gMonPalette_Cofagrigus, + .shinyPalette = gMonShinyPalette_Cofagrigus, + .iconSprite = gMonIcon_Cofagrigus, + .iconPalIndex = 0, + FOOTPRINT(Cofagrigus) + .levelUpLearnset = sCofagrigusLevelUpLearnset, + .teachableLearnset = sCofagrigusTeachableLearnset, }, #if P_GALARIAN_FORMS [SPECIES_YAMASK_GALARIAN] = { - YAMASK_MISC_INFO, .baseHP = 38, .baseAttack = 55, .baseDefense = 85, .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_GHOST }, - .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Yamask"), + .cryId = CRY_YAMASK, + .natDexNum = NATIONAL_DEX_YAMASK, + .categoryName = _("Spirit"), + .height = 5, + .weight = 15, .description = COMPOUND_STRING( "A clay slab with cursed engravings\n" "took possession of a Yamask. The\n" "slab is said to be absorbing the\n" "Yamask's dark power."), - FRONT_PIC(YamaskGalarian, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_YamaskGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_YamaskGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(YamaskGalarian, 40, 40), + .backPic = gMonBackPic_YamaskGalarian, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(YamaskGalarian), - ICON(YamaskGalarian, 2), - LEARNSETS(YamaskGalarian), + .palette = gMonPalette_YamaskGalarian, + .shinyPalette = gMonShinyPalette_YamaskGalarian, + .iconSprite = gMonIcon_YamaskGalarian, + .iconPalIndex = 2, + FOOTPRINT(Yamask) .isGalarianForm = TRUE, + .levelUpLearnset = sYamaskGalarianLevelUpLearnset, + .teachableLearnset = sYamaskGalarianTeachableLearnset, + .formSpeciesIdTable = sYamaskFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}), }, @@ -3907,7 +4555,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 50, .baseSpDefense = 105, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -3915,8 +4563,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Runerigus"), .cryId = CRY_RUNERIGUS, @@ -3932,18 +4580,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Runerigus, 64, 64), + .frontPic = gMonFrontPic_Runerigus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Runerigus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Runerigus, 64, 48), + .backPic = gMonBackPic_Runerigus, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Runerigus), - ICON(Runerigus, 2), - .footprint = gMonFootprint_Runerigus, - LEARNSETS(Runerigus), + .palette = gMonPalette_Runerigus, + .shinyPalette = gMonShinyPalette_Runerigus, + .iconSprite = gMonIcon_Runerigus, + .iconPalIndex = 2, + FOOTPRINT(Runerigus) + .levelUpLearnset = sRunerigusLevelUpLearnset, + .teachableLearnset = sRunerigusTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_YAMASK @@ -3957,7 +4610,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 22, .baseSpAttack = 53, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 45, .expYield = 71, .evYield_Defense = 1, @@ -3965,7 +4618,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tirtouga"), @@ -3983,17 +4636,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tirtouga, 56, 40), + .frontPic = gMonFrontPic_Tirtouga, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Tirtouga, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Tirtouga, 64, 32), + .backPic = gMonBackPic_Tirtouga, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tirtouga), - ICON(Tirtouga, 2), - .footprint = gMonFootprint_Tirtouga, - LEARNSETS(Tirtouga), + .palette = gMonPalette_Tirtouga, + .shinyPalette = gMonShinyPalette_Tirtouga, + .iconSprite = gMonIcon_Tirtouga, + .iconPalIndex = 2, + FOOTPRINT(Tirtouga) + .levelUpLearnset = sTirtougaLevelUpLearnset, + .teachableLearnset = sTirtougaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CARRACOSTA}), }, @@ -4005,7 +4663,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 32, .baseSpAttack = 83, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 45, .expYield = 173, .evYield_Defense = 2, @@ -4013,7 +4671,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Carracosta"), @@ -4031,17 +4689,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carracosta, 64, 56), + .frontPic = gMonFrontPic_Carracosta, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Carracosta, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Carracosta, 64, 40), + .backPic = gMonBackPic_Carracosta, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Carracosta), - ICON(Carracosta, 2), - .footprint = gMonFootprint_Carracosta, - LEARNSETS(Carracosta), + .palette = gMonPalette_Carracosta, + .shinyPalette = gMonShinyPalette_Carracosta, + .iconSprite = gMonIcon_Carracosta, + .iconPalIndex = 2, + FOOTPRINT(Carracosta) + .levelUpLearnset = sCarracostaLevelUpLearnset, + .teachableLearnset = sCarracostaTeachableLearnset, }, #endif //P_FAMILY_TIRTOUGA @@ -4054,7 +4717,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 70, .baseSpAttack = 74, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), .catchRate = 45, .expYield = 71, .evYield_Attack = 1, @@ -4062,8 +4725,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_DEFEATIST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_3), + .abilities = { ABILITY_DEFEATIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Archen"), .cryId = CRY_ARCHEN, @@ -4080,17 +4743,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Archen, 56, 40), + .frontPic = gMonFrontPic_Archen, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Archen, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Archen, 64, 32), + .backPic = gMonBackPic_Archen, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Archen), - ICON(Archen, 0), - .footprint = gMonFootprint_Archen, - LEARNSETS(Archen), + .palette = gMonPalette_Archen, + .shinyPalette = gMonShinyPalette_Archen, + .iconSprite = gMonIcon_Archen, + .iconPalIndex = 0, + FOOTPRINT(Archen) + .levelUpLearnset = sArchenLevelUpLearnset, + .teachableLearnset = sArchenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_ARCHEOPS}), }, @@ -4102,7 +4770,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 110, .baseSpAttack = 112, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -4110,8 +4778,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_DEFEATIST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_3), + .abilities = { ABILITY_DEFEATIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Archeops"), .cryId = CRY_ARCHEOPS, @@ -4128,18 +4796,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Archeops, 64, 64), + .frontPic = gMonFrontPic_Archeops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Archeops, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 11, - BACK_PIC(Archeops, 64, 40), + .backPic = gMonBackPic_Archeops, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Archeops), - ICON(Archeops, 0), - .footprint = gMonFootprint_Archeops, - LEARNSETS(Archeops), + .palette = gMonPalette_Archeops, + .shinyPalette = gMonShinyPalette_Archeops, + .iconSprite = gMonIcon_Archeops, + .iconPalIndex = 0, + FOOTPRINT(Archeops) + .levelUpLearnset = sArcheopsLevelUpLearnset, + .teachableLearnset = sArcheopsTeachableLearnset, }, #endif //P_FAMILY_ARCHEN @@ -4152,7 +4825,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 62, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 190, .expYield = 66, .evYield_Speed = 1, @@ -4161,7 +4834,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Trubbish"), @@ -4179,53 +4852,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trubbish, 48, 40), + .frontPic = gMonFrontPic_Trubbish, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Trubbish, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Trubbish, 48, 48), + .backPic = gMonBackPic_Trubbish, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Trubbish), - ICON(Trubbish, 1), - .footprint = gMonFootprint_Trubbish, - LEARNSETS(Trubbish), + .palette = gMonPalette_Trubbish, + .shinyPalette = gMonShinyPalette_Trubbish, + .iconSprite = gMonIcon_Trubbish, + .iconPalIndex = 1, + FOOTPRINT(Trubbish) + .levelUpLearnset = sTrubbishLevelUpLearnset, + .teachableLearnset = sTrubbishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GARBODOR}), }, -#define GARBODOR_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 82, \ - .baseSpeed = 75, \ - .baseSpAttack = 60, \ - .baseSpDefense = 82, \ - .types = { TYPE_POISON, TYPE_POISON }, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .itemCommon = ITEM_SILK_SCARF, \ - .itemRare = ITEM_BLACK_SLUDGE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE, \ - .speciesName = _("Garbodor"), \ - .cryId = CRY_GARBODOR, \ - .natDexNum = NATIONAL_DEX_GARBODOR, \ - .categoryName = _("Trash Heap"), \ - .footprint = gMonFootprint_Garbodor, \ - LEARNSETS(Garbodor), \ - .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, \ - .formChangeTable = sGarbodorFormChangeTable - [SPECIES_GARBODOR] = { - GARBODOR_MISC_INFO, + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 82, + .baseSpeed = 75, + .baseSpAttack = 60, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 2, + .itemCommon = ITEM_SILK_SCARF, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Garbodor"), + .cryId = CRY_GARBODOR, + .natDexNum = NATIONAL_DEX_GARBODOR, + .categoryName = _("Trash Heap"), .height = 19, .weight = 1073, .description = COMPOUND_STRING( @@ -4237,21 +4908,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Garbodor, 64, 64), + .frontPic = gMonFrontPic_Garbodor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Garbodor, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Garbodor, 64, 64), + .backPic = gMonBackPic_Garbodor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Garbodor), - ICON(Garbodor, 1), + .palette = gMonPalette_Garbodor, + .shinyPalette = gMonShinyPalette_Garbodor, + .iconSprite = gMonIcon_Garbodor, + .iconPalIndex = 1, + FOOTPRINT(Garbodor) + .levelUpLearnset = sGarbodorLevelUpLearnset, + .teachableLearnset = sGarbodorTeachableLearnset, + .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, + .formChangeTable = sGarbodorFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_GARBODOR_GIGANTAMAX] = { - GARBODOR_MISC_INFO, + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 82, + .baseSpeed = 75, + .baseSpAttack = 60, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 2, + .itemCommon = ITEM_SILK_SCARF, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Garbodor"), + .cryId = CRY_GARBODOR, + .natDexNum = NATIONAL_DEX_GARBODOR, + .categoryName = _("Trash Heap"), .height = 210, .weight = 0, .description = COMPOUND_STRING( @@ -4263,183 +4966,245 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(GarbodorGigantamax, 64, 64), + .frontPic = gMonFrontPic_GarbodorGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_GarbodorGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GarbodorGigantamax, 64, 64), + .backPic = gMonBackPic_GarbodorGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GarbodorGigantamax), - ICON(GarbodorGigantamax, 0), + .palette = gMonPalette_GarbodorGigantamax, + .shinyPalette = gMonShinyPalette_GarbodorGigantamax, + .iconSprite = gMonIcon_GarbodorGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Garbodor) .isGigantamax = TRUE, + .levelUpLearnset = sGarbodorLevelUpLearnset, + .teachableLearnset = sGarbodorTeachableLearnset, + .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, + .formChangeTable = sGarbodorFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TRUBBISH #if P_FAMILY_ZORUA -#define ZORUA_MISC_INFO \ - .catchRate = 75, \ - .expYield = 66, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ILLUSION, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Zorua"), \ - .cryId = CRY_ZORUA, \ - .natDexNum = NATIONAL_DEX_ZORUA, \ - .height = 7, \ - .weight = 125, \ - .pokemonScale = 365, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zorua, \ - .formSpeciesIdTable = sZoruaFormSpeciesIdTable - -#define ZOROARK_MISC_INFO \ - .catchRate = 45, \ - .expYield = 179, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ILLUSION, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Zoroark"), \ - .cryId = CRY_ZOROARK, \ - .natDexNum = NATIONAL_DEX_ZOROARK, \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Zoroark, \ - .formSpeciesIdTable = sZoroarkFormSpeciesIdTable - [SPECIES_ZORUA] = { - ZORUA_MISC_INFO, .baseHP = 40, .baseAttack = 65, .baseDefense = 40, .baseSpeed = 65, .baseSpAttack = 80, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 75, + .expYield = 66, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zorua"), + .cryId = CRY_ZORUA, + .natDexNum = NATIONAL_DEX_ZORUA, .categoryName = _("Tricky Fox"), + .height = 7, + .weight = 125, .description = COMPOUND_STRING( "To protect themselves from danger, they\n" "hide their true identities by transforming\n" "into people and Pokémon. Apparently, it\n" "often transforms into a silent child."), - FRONT_PIC(Zorua, 40, 48), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Zorua, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Zorua, .frontAnimId = ANIM_CIRCULAR_VIBRATE, - BACK_PIC(Zorua, 64, 56), + .backPic = gMonBackPic_Zorua, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Zorua), - ICON(Zorua, 0), - LEARNSETS(Zorua), + .palette = gMonPalette_Zorua, + .shinyPalette = gMonShinyPalette_Zorua, + .iconSprite = gMonIcon_Zorua, + .iconPalIndex = 0, + FOOTPRINT(Zorua) + .levelUpLearnset = sZoruaLevelUpLearnset, + .teachableLearnset = sZoruaTeachableLearnset, + .formSpeciesIdTable = sZoruaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK}), }, [SPECIES_ZOROARK] = { - ZOROARK_MISC_INFO, .baseHP = 60, .baseAttack = 105, .baseDefense = 60, .baseSpeed = 105, .baseSpAttack = 120, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 45, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zoroark"), + .cryId = CRY_ZOROARK, + .natDexNum = NATIONAL_DEX_ZOROARK, .categoryName = _("Illusion Fox"), + .height = 16, .weight = 811, .description = COMPOUND_STRING( "Bonds between these Pokémon are very\n" "strong. It protects the safety of its\n" "pack by tricking its opponents. They\n" "defend their lair with illusory scenery."), - FRONT_PIC(Zoroark, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Zoroark, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zoroark, .frontAnimId = ANIM_FLICKER_INCREASING, - BACK_PIC(Zoroark, 64, 56), + .backPic = gMonBackPic_Zoroark, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Zoroark), - ICON(Zoroark, 0), - LEARNSETS(Zoroark), + .palette = gMonPalette_Zoroark, + .shinyPalette = gMonShinyPalette_Zoroark, + .iconSprite = gMonIcon_Zoroark, + .iconPalIndex = 0, + FOOTPRINT(Zoroark) + .levelUpLearnset = sZoroarkLevelUpLearnset, + .teachableLearnset = sZoroarkTeachableLearnset, + .formSpeciesIdTable = sZoroarkFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_ZORUA_HISUIAN] = { - ZORUA_MISC_INFO, .baseHP = 35, .baseAttack = 60, .baseDefense = 40, .baseSpeed = 70, .baseSpAttack = 85, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GHOST), + .catchRate = 75, + .expYield = 66, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zorua"), + .cryId = CRY_ZORUA, + .natDexNum = NATIONAL_DEX_ZORUA, .categoryName = _("Spiteful Fox"), + .height = 7, + .weight = 125, .description = COMPOUND_STRING( "Derives power from resentment,\n" "which rises as energy atop its head and\n" "takes on the forms of foes. In this\n" "way, Zorua vents lingering malice."), - FRONT_PIC(ZoruaHisuian, 48, 64), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZoruaHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ZoruaHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZoruaHisuian, 56, 64), + .backPic = gMonBackPic_ZoruaHisuian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZoruaHisuian), - ICON(ZoruaHisuian, 0), - LEARNSETS(ZoruaHisuian), + .palette = gMonPalette_ZoruaHisuian, + .shinyPalette = gMonShinyPalette_ZoruaHisuian, + .iconSprite = gMonIcon_ZoruaHisuian, + .iconPalIndex = 0, + FOOTPRINT(Zorua) .isHisuianForm = TRUE, + .levelUpLearnset = sZoruaHisuianLevelUpLearnset, + .teachableLearnset = sZoruaHisuianTeachableLearnset, + .formSpeciesIdTable = sZoruaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK_HISUIAN}), }, [SPECIES_ZOROARK_HISUIAN] = { - ZOROARK_MISC_INFO, .baseHP = 55, .baseAttack = 100, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 125, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GHOST), + .catchRate = 45, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zoroark"), + .cryId = CRY_ZOROARK, + .natDexNum = NATIONAL_DEX_ZOROARK, .categoryName = _("Baneful Fox"), + .height = 16, .weight = 730, .description = COMPOUND_STRING( "Heedless of its own safety,\n" "Zoroark attacks its nemeses with a bitter\n" "energy so intense, it lacerates\n" "Zoroark's own body."), - FRONT_PIC(ZoroarkHisuian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_ZoroarkHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZoroarkHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZoroarkHisuian, 64, 64), + .backPic = gMonBackPic_ZoroarkHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZoroarkHisuian), - ICON(ZoroarkHisuian, 0), - LEARNSETS(ZoroarkHisuian), + .palette = gMonPalette_ZoroarkHisuian, + .shinyPalette = gMonShinyPalette_ZoroarkHisuian, + .iconSprite = gMonIcon_ZoroarkHisuian, + .iconPalIndex = 0, + FOOTPRINT(Zoroark) .isHisuianForm = TRUE, + .levelUpLearnset = sZoroarkHisuianLevelUpLearnset, + .teachableLearnset = sZoroarkHisuianTeachableLearnset, + .formSpeciesIdTable = sZoroarkFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ZORUA @@ -4453,7 +5218,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 60, .evYield_Speed = 1, @@ -4461,7 +5226,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Minccino"), @@ -4479,17 +5244,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Minccino, 56, 48), + .frontPic = gMonFrontPic_Minccino, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Minccino, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Minccino, 56, 56), + .backPic = gMonBackPic_Minccino, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Minccino), - ICON(Minccino, 0), - .footprint = gMonFootprint_Minccino, - LEARNSETS(Minccino), + .palette = gMonPalette_Minccino, + .shinyPalette = gMonShinyPalette_Minccino, + .iconSprite = gMonIcon_Minccino, + .iconPalIndex = 0, + FOOTPRINT(Minccino) + .levelUpLearnset = sMinccinoLevelUpLearnset, + .teachableLearnset = sMinccinoTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_CINCCINO}), }, @@ -4501,7 +5271,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 115, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, .expYield = 165, .evYield_Speed = 2, @@ -4509,7 +5279,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -4528,17 +5298,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cinccino, 56, 56), + .frontPic = gMonFrontPic_Cinccino, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Cinccino, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cinccino, 64, 56), + .backPic = gMonBackPic_Cinccino, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Cinccino), - ICON(Cinccino, 0), - .footprint = gMonFootprint_Cinccino, - LEARNSETS(Cinccino), + .palette = gMonPalette_Cinccino, + .shinyPalette = gMonShinyPalette_Cinccino, + .iconSprite = gMonIcon_Cinccino, + .iconPalIndex = 0, + FOOTPRINT(Cinccino) + .levelUpLearnset = sCinccinoLevelUpLearnset, + .teachableLearnset = sCinccinoTeachableLearnset, }, #endif //P_FAMILY_MINCCINO @@ -4551,7 +5326,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, .expYield = 58, .evYield_SpDefense = 1, @@ -4559,7 +5334,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothita"), @@ -4577,17 +5352,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gothita, 40, 40), + .frontPic = gMonFrontPic_Gothita, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Gothita, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Gothita, 48, 48), + .backPic = gMonBackPic_Gothita, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Gothita), - ICON(Gothita, 2), - .footprint = gMonFootprint_Gothita, - LEARNSETS(Gothita), + .palette = gMonPalette_Gothita, + .shinyPalette = gMonShinyPalette_Gothita, + .iconSprite = gMonIcon_Gothita, + .iconPalIndex = 2, + FOOTPRINT(Gothita) + .levelUpLearnset = sGothitaLevelUpLearnset, + .teachableLearnset = sGothitaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOTHORITA}), }, @@ -4599,7 +5379,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, .expYield = 137, .evYield_SpDefense = 2, @@ -4607,7 +5387,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothorita"), @@ -4625,17 +5405,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gothorita, 48, 56), + .frontPic = gMonFrontPic_Gothorita, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gothorita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gothorita, 64, 56), + .backPic = gMonBackPic_Gothorita, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Gothorita), - ICON(Gothorita, 2), - .footprint = gMonFootprint_Gothorita, - LEARNSETS(Gothorita), + .palette = gMonPalette_Gothorita, + .shinyPalette = gMonShinyPalette_Gothorita, + .iconSprite = gMonIcon_Gothorita, + .iconPalIndex = 2, + FOOTPRINT(Gothorita) + .levelUpLearnset = sGothoritaLevelUpLearnset, + .teachableLearnset = sGothoritaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_GOTHITELLE}), }, @@ -4647,15 +5432,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 50, - .expYield = 221, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 245 : 221, .evYield_SpDefense = 3, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothitelle"), @@ -4673,17 +5458,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Gothitelle, 48, 64), + .frontPic = gMonFrontPic_Gothitelle, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gothitelle, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Gothitelle, 64, 64), + .backPic = gMonBackPic_Gothitelle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Gothitelle), - ICON(Gothitelle, 2), - .footprint = gMonFootprint_Gothitelle, - LEARNSETS(Gothitelle), + .palette = gMonPalette_Gothitelle, + .shinyPalette = gMonShinyPalette_Gothitelle, + .iconSprite = gMonIcon_Gothitelle, + .iconPalIndex = 2, + FOOTPRINT(Gothitelle) + .levelUpLearnset = sGothitelleLevelUpLearnset, + .teachableLearnset = sGothitelleTeachableLearnset, }, #endif //P_FAMILY_GOTHITA @@ -4696,7 +5486,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 105, .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, .expYield = 58, .evYield_SpAttack = 1, @@ -4704,7 +5494,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -4723,18 +5513,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Solosis, 32, 32), + .frontPic = gMonFrontPic_Solosis, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Solosis, .frontAnimId = ANIM_TWIST, .enemyMonElevation = 14, - BACK_PIC(Solosis, 48, 32), + .backPic = gMonBackPic_Solosis, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Solosis), - ICON(Solosis, 1), - .footprint = gMonFootprint_Solosis, - LEARNSETS(Solosis), + .palette = gMonPalette_Solosis, + .shinyPalette = gMonShinyPalette_Solosis, + .iconSprite = gMonIcon_Solosis, + .iconPalIndex = 1, + FOOTPRINT(Solosis) + .levelUpLearnset = sSolosisLevelUpLearnset, + .teachableLearnset = sSolosisTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_DUOSION}), }, @@ -4746,7 +5541,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 125, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, .expYield = 130, .evYield_SpAttack = 2, @@ -4754,7 +5549,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Duosion"), @@ -4772,18 +5567,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Duosion, 40, 48), + .frontPic = gMonFrontPic_Duosion, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Duosion, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 7, - BACK_PIC(Duosion, 56, 48), + .backPic = gMonBackPic_Duosion, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_GROW, - PALETTES(Duosion), - ICON(Duosion, 1), - .footprint = gMonFootprint_Duosion, - LEARNSETS(Duosion), + .palette = gMonPalette_Duosion, + .shinyPalette = gMonShinyPalette_Duosion, + .iconSprite = gMonIcon_Duosion, + .iconPalIndex = 1, + FOOTPRINT(Duosion) + .levelUpLearnset = sDuosionLevelUpLearnset, + .teachableLearnset = sDuosionTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_REUNICLUS}), }, @@ -4795,15 +5595,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 125, .baseSpDefense = 85, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 50, - .expYield = 221, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 245 : 221, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Reuniclus"), @@ -4821,18 +5621,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Reuniclus, 64, 48), + .frontPic = gMonFrontPic_Reuniclus, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Reuniclus, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Reuniclus, 64, 48), + .backPic = gMonBackPic_Reuniclus, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Reuniclus), - ICON(Reuniclus, 1), - .footprint = gMonFootprint_Reuniclus, - LEARNSETS(Reuniclus), + .palette = gMonPalette_Reuniclus, + .shinyPalette = gMonShinyPalette_Reuniclus, + .iconSprite = gMonIcon_Reuniclus, + .iconPalIndex = 1, + FOOTPRINT(Reuniclus) + .levelUpLearnset = sReuniclusLevelUpLearnset, + .teachableLearnset = sReuniclusTeachableLearnset, }, #endif //P_FAMILY_SOLOSIS @@ -4845,7 +5650,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 44, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 190, .expYield = 61, .evYield_HP = 1, @@ -4853,7 +5658,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Ducklett"), @@ -4871,17 +5676,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ducklett, 32, 40), + .frontPic = gMonFrontPic_Ducklett, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ducklett, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Ducklett, 48, 48), + .backPic = gMonBackPic_Ducklett, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Ducklett), - ICON(Ducklett, 0), - .footprint = gMonFootprint_Ducklett, - LEARNSETS(Ducklett), + .palette = gMonPalette_Ducklett, + .shinyPalette = gMonShinyPalette_Ducklett, + .iconSprite = gMonIcon_Ducklett, + .iconPalIndex = 0, + FOOTPRINT(Ducklett) + .levelUpLearnset = sDucklettLevelUpLearnset, + .teachableLearnset = sDucklettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_SWANNA}), }, @@ -4893,7 +5703,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 98, .baseSpAttack = 87, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 45, .expYield = 166, .evYield_Speed = 2, @@ -4901,7 +5711,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Swanna"), @@ -4919,17 +5729,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swanna, 56, 64), + .frontPic = gMonFrontPic_Swanna, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Swanna, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Swanna, 64, 64), + .backPic = gMonBackPic_Swanna, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Swanna), - ICON(Swanna, 2), - .footprint = gMonFootprint_Swanna, - LEARNSETS(Swanna), + .palette = gMonPalette_Swanna, + .shinyPalette = gMonShinyPalette_Swanna, + .iconSprite = gMonIcon_Swanna, + .iconPalIndex = 2, + FOOTPRINT(Swanna) + .levelUpLearnset = sSwannaLevelUpLearnset, + .teachableLearnset = sSwannaTeachableLearnset, }, #endif //P_FAMILY_DUCKLETT @@ -4942,7 +5757,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 44, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 255, .expYield = 61, .evYield_SpAttack = 1, @@ -4951,7 +5766,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanillite"), @@ -4969,17 +5784,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanillite, 32, 40), + .frontPic = gMonFrontPic_Vanillite, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Vanillite, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Vanillite, 40, 48), + .backPic = gMonBackPic_Vanillite, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Vanillite), - ICON(Vanillite, 0), - .footprint = gMonFootprint_Vanillite, - LEARNSETS(Vanillite), + .palette = gMonPalette_Vanillite, + .shinyPalette = gMonShinyPalette_Vanillite, + .iconSprite = gMonIcon_Vanillite, + .iconPalIndex = 0, + FOOTPRINT(Vanillite) + .levelUpLearnset = sVanilliteLevelUpLearnset, + .teachableLearnset = sVanilliteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VANILLISH}), }, @@ -4991,7 +5811,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 59, .baseSpAttack = 80, .baseSpDefense = 75, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 120, .expYield = 138, .evYield_SpAttack = 2, @@ -5000,7 +5820,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanillish"), @@ -5018,17 +5838,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanillish, 32, 56), + .frontPic = gMonFrontPic_Vanillish, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Vanillish, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Vanillish, 48, 56), + .backPic = gMonBackPic_Vanillish, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Vanillish), - ICON(Vanillish, 2), - .footprint = gMonFootprint_Vanillish, - LEARNSETS(Vanillish), + .palette = gMonPalette_Vanillish, + .shinyPalette = gMonShinyPalette_Vanillish, + .iconSprite = gMonIcon_Vanillish, + .iconPalIndex = 2, + FOOTPRINT(Vanillish) + .levelUpLearnset = sVanillishLevelUpLearnset, + .teachableLearnset = sVanillishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 47, SPECIES_VANILLUXE}), }, @@ -5040,16 +5865,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 79, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 45, - .expYield = 241, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 268 : 241, .evYield_SpAttack = 3, .itemCommon = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanilluxe"), @@ -5067,203 +5892,452 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanilluxe, 56, 56), + .frontPic = gMonFrontPic_Vanilluxe, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Vanilluxe, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Vanilluxe, 64, 64), + .backPic = gMonBackPic_Vanilluxe, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Vanilluxe), - ICON(Vanilluxe, 2), - .footprint = gMonFootprint_Vanilluxe, - LEARNSETS(Vanilluxe), + .palette = gMonPalette_Vanilluxe, + .shinyPalette = gMonShinyPalette_Vanilluxe, + .iconSprite = gMonIcon_Vanilluxe, + .iconPalIndex = 2, + FOOTPRINT(Vanilluxe) + .levelUpLearnset = sVanilluxeLevelUpLearnset, + .teachableLearnset = sVanilluxeTeachableLearnset, }, #endif //P_FAMILY_VANILLITE #if P_FAMILY_DEERLING -#define DEERLING_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 60, \ - .baseDefense = 50, \ - .baseSpeed = 75, \ - .baseSpAttack = 40, \ - .baseSpDefense = 50, \ - .types = { TYPE_NORMAL, TYPE_GRASS }, \ - .catchRate = 190, \ - .expYield = 67, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, \ - .speciesName = _("Deerling"), \ - .cryId = CRY_DEERLING, \ - .natDexNum = NATIONAL_DEX_DEERLING, \ - .categoryName = _("Season"), \ - .height = 6, \ - .weight = 195, \ - .pokemonScale = 422, \ - .pokemonOffset = 14, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Deerling, 32, 48), \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Deerling, \ - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ - BACK_PIC(Deerling, 48, 56), \ - .backPicYOffset = 9, \ - .backAnimId = BACK_ANIM_H_SLIDE, \ - .footprint = gMonFootprint_Deerling, \ - LEARNSETS(Deerling), \ - .formSpeciesIdTable = sDeerlingFormSpeciesIdTable - [SPECIES_DEERLING_SPRING] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling have different scents\n" "depending on the season. In early\n" "spring, these Pokémon give off a\n" "delicate, sweet, and calming scent."), - PALETTES(DeerlingSpring), - ICON(DeerlingSpring, 1), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingSpring, + .shinyPalette = gMonShinyPalette_DeerlingSpring, + .iconSprite = gMonIcon_DeerlingSpring, + .iconPalIndex = 1, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SPRING}), }, + [SPECIES_DEERLING_SUMMER] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "To prevent Deerling from entering\n" "their fields, many farmers will have\n" "several Lycanroc stand guard, as\n" "they are its natural enemy."), - PALETTES(DeerlingSummer), - ICON(DeerlingSummer, 1), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingSummer, + .shinyPalette = gMonShinyPalette_DeerlingSummer, + .iconSprite = gMonIcon_DeerlingSummer, + .iconPalIndex = 1, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SUMMER}), }, + [SPECIES_DEERLING_AUTUMN] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling have different scents\n" "depending on the season. In this form,\n" "Deerling have a softly sweet scent\n" "that lingers in the nose."), - PALETTES(DeerlingAutumn), - ICON(DeerlingAutumn, 0), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingAutumn, + .shinyPalette = gMonShinyPalette_DeerlingAutumn, + .iconSprite = gMonIcon_DeerlingAutumn, + .iconPalIndex = 0, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_AUTUMN}), }, + [SPECIES_DEERLING_WINTER] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling's scent changes with the\n" "seasons, but when the Pokémon is in\n" "its Winter Form, it has hardly any\n" "scent at all."), - PALETTES(DeerlingWinter), - ICON(DeerlingWinter, 2), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingWinter, + .shinyPalette = gMonShinyPalette_DeerlingWinter, + .iconSprite = gMonIcon_DeerlingWinter, + .iconPalIndex = 2, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_WINTER}), }, -#define SAWSBUCK_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 100, \ - .baseDefense = 70, \ - .baseSpeed = 95, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = { TYPE_NORMAL, TYPE_GRASS }, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Sawsbuck"), \ - .cryId = CRY_SAWSBUCK, \ - .natDexNum = NATIONAL_DEX_SAWSBUCK, \ - .categoryName = _("Season"), \ - .height = 19, \ - .weight = 925, \ - .pokemonScale = 256, \ - .pokemonOffset = 1, \ - .trainerScale = 326, \ - .trainerOffset = 4, \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Sawsbuck, \ - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ - .backPicYOffset = 5, \ - .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, \ - .footprint = gMonFootprint_Sawsbuck, \ - LEARNSETS(Sawsbuck), \ - .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable - [SPECIES_SAWSBUCK_SPRING] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Some people call Sawsbuck the harbingers\n" "of spring because the plants growing on\n" "its horns change according to the season.\n" "The leader possesses magnificent horns."), - FRONT_PIC(SawsbuckSpring, 56, 64), - BACK_PIC(SawsbuckSpring, 48, 64), - PALETTES(SawsbuckSpring), - ICON(SawsbuckSpring, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckSpring, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckSpring, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckSpring, + .shinyPalette = gMonShinyPalette_SawsbuckSpring, + .iconSprite = gMonIcon_SawsbuckSpring, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_SUMMER] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "The thicker and larger the\n" "branches and leaves on its antlers, the\n" "more majestic the Sawsbuck is thought\n" "to be."), - FRONT_PIC(SawsbuckSummer, 64, 64), - BACK_PIC(SawsbuckSummer, 64, 64), - PALETTES(SawsbuckSummer), - ICON(SawsbuckSummer, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckSummer, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckSummer, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckSummer, + .shinyPalette = gMonShinyPalette_SawsbuckSummer, + .iconSprite = gMonIcon_SawsbuckSummer, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_AUTUMN] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Sawsbuck in their Autumn Form are\n" "known for having very short\n" "tempers. The males fight each other\n" "incessantly."), - FRONT_PIC(SawsbuckAutumn, 64, 64), - BACK_PIC(SawsbuckAutumn, 64, 64), - PALETTES(SawsbuckAutumn), - ICON(SawsbuckAutumn, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckAutumn, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckAutumn, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckAutumn, + .shinyPalette = gMonShinyPalette_SawsbuckAutumn, + .iconSprite = gMonIcon_SawsbuckAutumn, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_WINTER] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Though there are many enthusiasts\n" "for Sawsbuck as a species, this\n" "seasonal form in particular is not\n" "very popular."), - FRONT_PIC(SawsbuckWinter, 56, 64), - BACK_PIC(SawsbuckWinter, 48, 64), - PALETTES(SawsbuckWinter), - ICON(SawsbuckWinter, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckWinter, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckWinter, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckWinter, + .shinyPalette = gMonShinyPalette_SawsbuckWinter, + .iconSprite = gMonIcon_SawsbuckWinter, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, #endif //P_FAMILY_DEERLING @@ -5277,7 +6351,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 103, .baseSpAttack = 75, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 200, .expYield = 150, .evYield_Speed = 2, @@ -5285,7 +6359,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_MOTOR_DRIVE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Emolga"), @@ -5303,18 +6377,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Emolga, 64, 48), + .frontPic = gMonFrontPic_Emolga, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Emolga, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .enemyMonElevation = 19, - BACK_PIC(Emolga, 56, 40), + .backPic = gMonBackPic_Emolga, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Emolga), - ICON(Emolga, 2), - .footprint = gMonFootprint_Emolga, - LEARNSETS(Emolga), + .palette = gMonPalette_Emolga, + .shinyPalette = gMonShinyPalette_Emolga, + .iconSprite = gMonIcon_Emolga, + .iconPalIndex = 2, + FOOTPRINT(Emolga) + .levelUpLearnset = sEmolgaLevelUpLearnset, + .teachableLearnset = sEmolgaTeachableLearnset, }, #endif //P_FAMILY_EMOLGA @@ -5327,7 +6406,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 200, .expYield = 63, .evYield_Attack = 1, @@ -5335,7 +6414,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHED_SKIN, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Karrablast"), @@ -5353,17 +6432,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Karrablast, 40, 48), + .frontPic = gMonFrontPic_Karrablast, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Karrablast, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Karrablast, 48, 48), + .backPic = gMonBackPic_Karrablast, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Karrablast), - ICON(Karrablast, 0), - .footprint = gMonFootprint_Karrablast, - LEARNSETS(Karrablast), + .palette = gMonPalette_Karrablast, + .shinyPalette = gMonShinyPalette_Karrablast, + .iconSprite = gMonIcon_Karrablast, + .iconPalIndex = 0, + FOOTPRINT(Karrablast) + .levelUpLearnset = sKarrablastLevelUpLearnset, + .teachableLearnset = sKarrablastTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_SHELMET, SPECIES_ESCAVALIER}), }, @@ -5375,7 +6459,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 60, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 75, .expYield = 173, .evYield_Attack = 2, @@ -5383,7 +6467,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Escavalier"), @@ -5401,17 +6485,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Escavalier, 64, 64), + .frontPic = gMonFrontPic_Escavalier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Escavalier, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Escavalier, 64, 56), + .backPic = gMonBackPic_Escavalier, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Escavalier), - ICON(Escavalier, 0), - .footprint = gMonFootprint_Escavalier, - LEARNSETS(Escavalier), + .palette = gMonPalette_Escavalier, + .shinyPalette = gMonShinyPalette_Escavalier, + .iconSprite = gMonIcon_Escavalier, + .iconPalIndex = 0, + FOOTPRINT(Escavalier) + .levelUpLearnset = sEscavalierLevelUpLearnset, + .teachableLearnset = sEscavalierTeachableLearnset, }, #endif //P_FAMILY_KARRABLAST @@ -5424,7 +6513,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 15, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 190, .expYield = 59, .evYield_HP = 1, @@ -5434,7 +6523,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Foongus"), @@ -5452,17 +6541,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Foongus, 32, 32), + .frontPic = gMonFrontPic_Foongus, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Foongus, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Foongus, 48, 40), + .backPic = gMonBackPic_Foongus, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Foongus), - ICON(Foongus, 0), - .footprint = gMonFootprint_Foongus, - LEARNSETS(Foongus), + .palette = gMonPalette_Foongus, + .shinyPalette = gMonShinyPalette_Foongus, + .iconSprite = gMonIcon_Foongus, + .iconPalIndex = 0, + FOOTPRINT(Foongus) + .levelUpLearnset = sFoongusLevelUpLearnset, + .teachableLearnset = sFoongusTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_AMOONGUSS}), }, @@ -5474,7 +6568,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 85, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 75, .expYield = 162, .evYield_HP = 2, @@ -5484,7 +6578,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -5503,17 +6597,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Amoonguss, 56, 56), + .frontPic = gMonFrontPic_Amoonguss, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Amoonguss, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Amoonguss, 64, 48), + .backPic = gMonBackPic_Amoonguss, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Amoonguss), - ICON(Amoonguss, 1), - .footprint = gMonFootprint_Amoonguss, - LEARNSETS(Amoonguss), + .palette = gMonPalette_Amoonguss, + .shinyPalette = gMonShinyPalette_Amoonguss, + .iconSprite = gMonIcon_Amoonguss, + .iconPalIndex = 1, + FOOTPRINT(Amoonguss) + .levelUpLearnset = sAmoongussLevelUpLearnset, + .teachableLearnset = sAmoongussTeachableLearnset, }, #endif //P_FAMILY_FOONGUS @@ -5526,7 +6625,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 65, .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_GHOST }, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), .catchRate = 190, .expYield = 67, .evYield_SpDefense = 1, @@ -5534,7 +6633,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Frillish"), @@ -5552,21 +6651,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frillish, 56, 56), - FRONT_PIC_FEMALE(Frillish, 56, 56), + .frontPic = gMonFrontPic_Frillish, + .frontPicFemale = gMonFrontPic_FrillishF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Frillish, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Frillish, 40, 56), - BACK_PIC_FEMALE(Frillish, 40, 56), + .backPic = gMonBackPic_Frillish, + .backPicFemale = gMonBackPic_FrillishF, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Frillish), - PALETTE_FEMALE(Frillish), - ICON(Frillish, 0), - ICON_FEMALE(Frillish, 1), - .footprint = gMonFootprint_Frillish, - LEARNSETS(Frillish), + .palette = gMonPalette_Frillish, + .paletteFemale = gMonPalette_FrillishF, + .shinyPalette = gMonShinyPalette_Frillish, + .shinyPaletteFemale = gMonShinyPalette_FrillishF, + .iconSprite = gMonIcon_Frillish, + .iconSpriteFemale = gMonIcon_FrillishF, + .iconPalIndex = 0, + .iconPalIndexFemale = 1, + FOOTPRINT(Frillish) + .levelUpLearnset = sFrillishLevelUpLearnset, + .teachableLearnset = sFrillishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_JELLICENT}), }, @@ -5578,7 +6686,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 105, - .types = { TYPE_WATER, TYPE_GHOST }, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), .catchRate = 60, .expYield = 168, .evYield_SpDefense = 2, @@ -5586,7 +6694,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Jellicent"), @@ -5604,21 +6712,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Jellicent, 64, 64), - FRONT_PIC_FEMALE(Jellicent, 64, 64), + .frontPic = gMonFrontPic_Jellicent, + .frontPicFemale = gMonFrontPic_JellicentF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Jellicent, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Jellicent, 64, 48), - BACK_PIC_FEMALE(Jellicent, 64, 48), + .backPic = gMonBackPic_Jellicent, + .backPicFemale = gMonBackPic_JellicentF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Jellicent), - PALETTE_FEMALE(Jellicent), - ICON(Jellicent, 0), - ICON_FEMALE(Jellicent, 1), - .footprint = gMonFootprint_Jellicent, - LEARNSETS(Jellicent), + .palette = gMonPalette_Jellicent, + .paletteFemale = gMonPalette_JellicentF, + .shinyPalette = gMonShinyPalette_Jellicent, + .shinyPaletteFemale = gMonShinyPalette_JellicentF, + .iconSprite = gMonIcon_Jellicent, + .iconSpriteFemale = gMonIcon_JellicentF, + .iconPalIndex = 0, + .iconPalIndexFemale = 1, + FOOTPRINT(Jellicent) + .levelUpLearnset = sJellicentLevelUpLearnset, + .teachableLearnset = sJellicentTeachableLearnset, }, #endif //P_FAMILY_FRILLISH @@ -5631,7 +6748,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, .expYield = 165, .evYield_HP = 2, @@ -5639,7 +6756,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_HEALER, ABILITY_HYDRATION, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Alomomola"), @@ -5657,17 +6774,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Alomomola, 32, 64), + .frontPic = gMonFrontPic_Alomomola, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Alomomola, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Alomomola, 48, 64), + .backPic = gMonBackPic_Alomomola, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Alomomola), - ICON(Alomomola, 0), - .footprint = gMonFootprint_Alomomola, - LEARNSETS(Alomomola), + .palette = gMonPalette_Alomomola, + .shinyPalette = gMonShinyPalette_Alomomola, + .iconSprite = gMonIcon_Alomomola, + .iconPalIndex = 0, + FOOTPRINT(Alomomola) + .levelUpLearnset = sAlomomolaLevelUpLearnset, + .teachableLearnset = sAlomomolaTeachableLearnset, }, #endif //P_FAMILY_ALOMOMOLA @@ -5680,7 +6802,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 57, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 190, .expYield = 64, .evYield_Speed = 1, @@ -5688,7 +6810,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Joltik"), @@ -5706,17 +6828,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Joltik, 32, 32), + .frontPic = gMonFrontPic_Joltik, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Joltik, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Joltik, 48, 32), + .backPic = gMonBackPic_Joltik, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Joltik), - ICON(Joltik, 0), - .footprint = gMonFootprint_Joltik, - LEARNSETS(Joltik), + .palette = gMonPalette_Joltik, + .shinyPalette = gMonShinyPalette_Joltik, + .iconSprite = gMonIcon_Joltik, + .iconPalIndex = 0, + FOOTPRINT(Joltik) + .levelUpLearnset = sJoltikLevelUpLearnset, + .teachableLearnset = sJoltikTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GALVANTULA}), }, @@ -5728,7 +6855,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 97, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 75, .expYield = 165, .evYield_Speed = 2, @@ -5736,7 +6863,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Galvantula"), @@ -5754,17 +6881,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Galvantula, 56, 48), + .frontPic = gMonFrontPic_Galvantula, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Galvantula, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Galvantula, 64, 40), + .backPic = gMonBackPic_Galvantula, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Galvantula), - ICON(Galvantula, 2), - .footprint = gMonFootprint_Galvantula, - LEARNSETS(Galvantula), + .palette = gMonPalette_Galvantula, + .shinyPalette = gMonShinyPalette_Galvantula, + .iconSprite = gMonIcon_Galvantula, + .iconPalIndex = 2, + FOOTPRINT(Galvantula) + .levelUpLearnset = sGalvantulaLevelUpLearnset, + .teachableLearnset = sGalvantulaTeachableLearnset, }, #endif //P_FAMILY_JOLTIK @@ -5777,7 +6909,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 10, .baseSpAttack = 24, .baseSpDefense = 86, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 255, .expYield = 61, .evYield_Defense = 1, @@ -5786,8 +6918,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_MINERAL), + .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Ferroseed"), .cryId = CRY_FERROSEED, @@ -5804,17 +6936,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ferroseed, 32, 40), + .frontPic = gMonFrontPic_Ferroseed, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ferroseed, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Ferroseed, 48, 40), + .backPic = gMonBackPic_Ferroseed, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Ferroseed), - ICON(Ferroseed, 1), - .footprint = gMonFootprint_Ferroseed, - LEARNSETS(Ferroseed), + .palette = gMonPalette_Ferroseed, + .shinyPalette = gMonShinyPalette_Ferroseed, + .iconSprite = gMonIcon_Ferroseed, + .iconPalIndex = 1, + FOOTPRINT(Ferroseed) + .levelUpLearnset = sFerroseedLevelUpLearnset, + .teachableLearnset = sFerroseedTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_FERROTHORN}), }, @@ -5826,7 +6963,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 54, .baseSpDefense = 116, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 90, .expYield = 171, .evYield_Defense = 2, @@ -5835,7 +6972,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_ANTICIPATION }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Ferrothorn"), @@ -5853,18 +6990,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Ferrothorn, 64, 64), + .frontPic = gMonFrontPic_Ferrothorn, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Ferrothorn, .frontAnimId = ANIM_V_SHAKE, .enemyMonElevation = 10, - BACK_PIC(Ferrothorn, 64, 40), + .backPic = gMonBackPic_Ferrothorn, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Ferrothorn), - ICON(Ferrothorn, 1), - .footprint = gMonFootprint_Ferrothorn, - LEARNSETS(Ferrothorn), + .palette = gMonPalette_Ferrothorn, + .shinyPalette = gMonShinyPalette_Ferrothorn, + .iconSprite = gMonIcon_Ferrothorn, + .iconPalIndex = 1, + FOOTPRINT(Ferrothorn) + .levelUpLearnset = sFerrothornLevelUpLearnset, + .teachableLearnset = sFerrothornTeachableLearnset, }, #endif //P_FAMILY_FERROSEED @@ -5877,7 +7019,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 45, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 130, .expYield = 60, .evYield_Defense = 1, @@ -5885,7 +7027,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5904,18 +7046,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klink, 48, 40), + .frontPic = gMonFrontPic_Klink, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Klink, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 12, - BACK_PIC(Klink, 64, 64), + .backPic = gMonBackPic_Klink, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 17, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Klink), - ICON(Klink, 0), - .footprint = gMonFootprint_Klink, - LEARNSETS(Klink), + .palette = gMonPalette_Klink, + .shinyPalette = gMonShinyPalette_Klink, + .iconSprite = gMonIcon_Klink, + .iconPalIndex = 0, + FOOTPRINT(Klink) + .levelUpLearnset = sKlinkLevelUpLearnset, + .teachableLearnset = sKlinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_KLANG}), }, @@ -5927,7 +7074,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 70, .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 60, .expYield = 154, .evYield_Defense = 2, @@ -5935,7 +7082,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5954,18 +7101,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klang, 64, 56), + .frontPic = gMonFrontPic_Klang, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Klang, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 8, - BACK_PIC(Klang, 64, 64), + .backPic = gMonBackPic_Klang, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Klang), - ICON(Klang, 0), - .footprint = gMonFootprint_Klang, - LEARNSETS(Klang), + .palette = gMonPalette_Klang, + .shinyPalette = gMonShinyPalette_Klang, + .iconSprite = gMonIcon_Klang, + .iconPalIndex = 0, + FOOTPRINT(Klang) + .levelUpLearnset = sKlangLevelUpLearnset, + .teachableLearnset = sKlangTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 49, SPECIES_KLINKLANG}), }, @@ -5977,15 +7129,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 70, .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 30, - .expYield = 234, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 260 : 234, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -6004,18 +7156,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klinklang, 64, 64), + .frontPic = gMonFrontPic_Klinklang, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Klinklang, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 4, - BACK_PIC(Klinklang, 64, 64), + .backPic = gMonBackPic_Klinklang, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Klinklang), - ICON(Klinklang, 0), - .footprint = gMonFootprint_Klinklang, - LEARNSETS(Klinklang), + .palette = gMonPalette_Klinklang, + .shinyPalette = gMonShinyPalette_Klinklang, + .iconSprite = gMonIcon_Klinklang, + .iconPalIndex = 0, + FOOTPRINT(Klinklang) + .levelUpLearnset = sKlinklangLevelUpLearnset, + .teachableLearnset = sKlinklangTeachableLearnset, }, #endif //P_FAMILY_KLINK @@ -6028,7 +7185,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 55, .evYield_Speed = 1, @@ -6036,8 +7193,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tynamo"), .cryId = CRY_TYNAMO, @@ -6054,18 +7211,24 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tynamo, 40, 24), + .frontPic = gMonFrontPic_Tynamo, + .frontPicSize = MON_COORDS_SIZE(40, 24), .frontPicYOffset = 22, .frontAnimFrames = sAnims_Tynamo, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 16, - BACK_PIC(Tynamo, 64, 24), + .backPic = gMonBackPic_Tynamo, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tynamo), - ICON(Tynamo, 0), - .footprint = gMonFootprint_Tynamo, - LEARNSETS(Tynamo), + .palette = gMonPalette_Tynamo, + .shinyPalette = gMonShinyPalette_Tynamo, + .iconSprite = gMonIcon_Tynamo, + .iconPalIndex = 0, + FOOTPRINT(Tynamo) + .tmIlliterate = TRUE, + .levelUpLearnset = sTynamoLevelUpLearnset, + .teachableLearnset = sTynamoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_EELEKTRIK}), }, @@ -6077,7 +7240,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 75, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 60, .expYield = 142, .evYield_Attack = 2, @@ -6085,8 +7248,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Eelektrik"), .cryId = CRY_EELEKTRIK, @@ -6103,18 +7266,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eelektrik, 48, 64), + .frontPic = gMonFrontPic_Eelektrik, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Eelektrik, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Eelektrik, 56, 64), + .backPic = gMonBackPic_Eelektrik, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Eelektrik), - ICON(Eelektrik, 0), - .footprint = gMonFootprint_Eelektrik, - LEARNSETS(Eelektrik), + .palette = gMonPalette_Eelektrik, + .shinyPalette = gMonShinyPalette_Eelektrik, + .iconSprite = gMonIcon_Eelektrik, + .iconPalIndex = 0, + FOOTPRINT(Eelektrik) + .levelUpLearnset = sEelektrikLevelUpLearnset, + .teachableLearnset = sEelektrikTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_EELEKTROSS}), }, @@ -6126,16 +7294,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 105, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 30, - .expYield = 232, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 258 : 232, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Eelektross"), .cryId = CRY_EELEKTROSS, @@ -6152,18 +7320,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Eelektross, 64, 56), + .frontPic = gMonFrontPic_Eelektross, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Eelektross, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, .enemyMonElevation = 8, - BACK_PIC(Eelektross, 64, 64), + .backPic = gMonBackPic_Eelektross, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Eelektross), - ICON(Eelektross, 0), - .footprint = gMonFootprint_Eelektross, - LEARNSETS(Eelektross), + .palette = gMonPalette_Eelektross, + .shinyPalette = gMonShinyPalette_Eelektross, + .iconSprite = gMonIcon_Eelektross, + .iconPalIndex = 0, + FOOTPRINT(Eelektross) + .levelUpLearnset = sEelektrossLevelUpLearnset, + .teachableLearnset = sEelektrossTeachableLearnset, }, #endif //P_FAMILY_TYNAMO @@ -6176,7 +7349,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 85, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, .expYield = 67, .evYield_SpAttack = 1, @@ -6184,7 +7357,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Elgyem"), @@ -6202,17 +7375,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Elgyem, 32, 48), + .frontPic = gMonFrontPic_Elgyem, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Elgyem, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Elgyem, 48, 56), + .backPic = gMonBackPic_Elgyem, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Elgyem), - ICON(Elgyem, 0), - .footprint = gMonFootprint_Elgyem, - LEARNSETS(Elgyem), + .palette = gMonPalette_Elgyem, + .shinyPalette = gMonShinyPalette_Elgyem, + .iconSprite = gMonIcon_Elgyem, + .iconPalIndex = 0, + FOOTPRINT(Elgyem) + .levelUpLearnset = sElgyemLevelUpLearnset, + .teachableLearnset = sElgyemTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_BEHEEYEM}), }, @@ -6224,7 +7402,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 125, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 90, .expYield = 170, .evYield_SpAttack = 2, @@ -6232,7 +7410,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Beheeyem"), @@ -6250,17 +7428,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Beheeyem, 48, 56), + .frontPic = gMonFrontPic_Beheeyem, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Beheeyem, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Beheeyem, 64, 64), + .backPic = gMonBackPic_Beheeyem, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Beheeyem), - ICON(Beheeyem, 2), - .footprint = gMonFootprint_Beheeyem, - LEARNSETS(Beheeyem), + .palette = gMonPalette_Beheeyem, + .shinyPalette = gMonShinyPalette_Beheeyem, + .iconSprite = gMonIcon_Beheeyem, + .iconPalIndex = 2, + FOOTPRINT(Beheeyem) + .levelUpLearnset = sBeheeyemLevelUpLearnset, + .teachableLearnset = sBeheeyemTeachableLearnset, }, #endif //P_FAMILY_ELGYEM @@ -6273,7 +7456,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 190, .expYield = 55, .evYield_SpAttack = 1, @@ -6281,12 +7464,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, .speciesName = _("Litwick"), @@ -6304,17 +7487,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litwick, 32, 40), + .frontPic = gMonFrontPic_Litwick, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Litwick, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Litwick, 40, 40), + .backPic = gMonBackPic_Litwick, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Litwick), - ICON(Litwick, 2), - .footprint = gMonFootprint_Litwick, - LEARNSETS(Litwick), + .palette = gMonPalette_Litwick, + .shinyPalette = gMonShinyPalette_Litwick, + .iconSprite = gMonIcon_Litwick, + .iconPalIndex = 2, + FOOTPRINT(Litwick) + .levelUpLearnset = sLitwickLevelUpLearnset, + .teachableLearnset = sLitwickTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_LAMPENT}), }, @@ -6326,7 +7514,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 95, .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 90, .expYield = 130, .evYield_SpAttack = 2, @@ -6334,12 +7522,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Lampent"), .cryId = CRY_LAMPENT, @@ -6356,18 +7544,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lampent, 56, 48), + .frontPic = gMonFrontPic_Lampent, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Lampent, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Lampent, 56, 48), + .backPic = gMonBackPic_Lampent, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Lampent), - ICON(Lampent, 2), - .footprint = gMonFootprint_Lampent, - LEARNSETS(Lampent), + .palette = gMonPalette_Lampent, + .shinyPalette = gMonShinyPalette_Lampent, + .iconSprite = gMonIcon_Lampent, + .iconPalIndex = 2, + FOOTPRINT(Lampent) + .levelUpLearnset = sLampentLevelUpLearnset, + .teachableLearnset = sLampentTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_CHANDELURE}), }, @@ -6379,20 +7572,20 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 145, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 45, - .expYield = 234, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 260 : 234, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Chandelure"), .cryId = CRY_CHANDELURE, @@ -6409,18 +7602,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Chandelure, 64, 64), + .frontPic = gMonFrontPic_Chandelure, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Chandelure, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Chandelure, 64, 64), + .backPic = gMonBackPic_Chandelure, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chandelure), - ICON(Chandelure, 2), - .footprint = gMonFootprint_Chandelure, - LEARNSETS(Chandelure), + .palette = gMonPalette_Chandelure, + .shinyPalette = gMonShinyPalette_Chandelure, + .iconSprite = gMonIcon_Chandelure, + .iconPalIndex = 2, + FOOTPRINT(Chandelure) + .levelUpLearnset = sChandelureLevelUpLearnset, + .teachableLearnset = sChandelureTeachableLearnset, }, #endif //P_FAMILY_LITWICK @@ -6433,7 +7631,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 57, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 75, .expYield = 64, .evYield_Attack = 1, @@ -6441,7 +7639,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Axew"), @@ -6459,17 +7657,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Axew, 40, 48), + .frontPic = gMonFrontPic_Axew, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Axew, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Axew, 48, 56), + .backPic = gMonBackPic_Axew, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Axew), - ICON(Axew, 1), - .footprint = gMonFootprint_Axew, - LEARNSETS(Axew), + .palette = gMonPalette_Axew, + .shinyPalette = gMonShinyPalette_Axew, + .iconSprite = gMonIcon_Axew, + .iconPalIndex = 1, + FOOTPRINT(Axew) + .levelUpLearnset = sAxewLevelUpLearnset, + .teachableLearnset = sAxewTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_FRAXURE}), }, @@ -6481,7 +7684,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 67, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 60, .expYield = 144, .evYield_Attack = 2, @@ -6489,7 +7692,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Fraxure"), @@ -6507,17 +7710,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Fraxure, 56, 56), + .frontPic = gMonFrontPic_Fraxure, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Fraxure, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fraxure, 64, 48), + .backPic = gMonBackPic_Fraxure, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Fraxure), - ICON(Fraxure, 1), - .footprint = gMonFootprint_Fraxure, - LEARNSETS(Fraxure), + .palette = gMonPalette_Fraxure, + .shinyPalette = gMonShinyPalette_Fraxure, + .iconSprite = gMonIcon_Fraxure, + .iconPalIndex = 1, + FOOTPRINT(Fraxure) + .levelUpLearnset = sFraxureLevelUpLearnset, + .teachableLearnset = sFraxureTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_HAXORUS}), }, @@ -6529,15 +7737,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 97, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 243, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 270 : 243, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Haxorus"), @@ -6555,17 +7763,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Haxorus, 64, 64), + .frontPic = gMonFrontPic_Haxorus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Haxorus, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Haxorus, 64, 56), + .backPic = gMonBackPic_Haxorus, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Haxorus), - ICON(Haxorus, 2), - .footprint = gMonFootprint_Haxorus, - LEARNSETS(Haxorus), + .palette = gMonPalette_Haxorus, + .shinyPalette = gMonShinyPalette_Haxorus, + .iconSprite = gMonIcon_Haxorus, + .iconPalIndex = 2, + FOOTPRINT(Haxorus) + .levelUpLearnset = sHaxorusLevelUpLearnset, + .teachableLearnset = sHaxorusTeachableLearnset, }, #endif //P_FAMILY_AXEW @@ -6578,7 +7791,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 120, .expYield = 61, .evYield_Attack = 1, @@ -6586,7 +7799,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cubchoo"), @@ -6604,17 +7817,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cubchoo, 32, 40), + .frontPic = gMonFrontPic_Cubchoo, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Cubchoo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cubchoo, 40, 40), + .backPic = gMonBackPic_Cubchoo, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Cubchoo), - ICON(Cubchoo, 0), - .footprint = gMonFootprint_Cubchoo, - LEARNSETS(Cubchoo), + .palette = gMonPalette_Cubchoo, + .shinyPalette = gMonShinyPalette_Cubchoo, + .iconSprite = gMonIcon_Cubchoo, + .iconPalIndex = 0, + FOOTPRINT(Cubchoo) + .levelUpLearnset = sCubchooLevelUpLearnset, + .teachableLearnset = sCubchooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BEARTIC}), }, @@ -6626,15 +7844,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 60, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 177 : 170, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Beartic"), @@ -6652,45 +7870,45 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 399, .trainerOffset = 4, - FRONT_PIC(Beartic, 64, 64), + .frontPic = gMonFrontPic_Beartic, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Beartic, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Beartic, 64, 64), + .backPic = gMonBackPic_Beartic, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Beartic), - ICON(Beartic, 0), - .footprint = gMonFootprint_Beartic, - LEARNSETS(Beartic), + .palette = gMonPalette_Beartic, + .shinyPalette = gMonShinyPalette_Beartic, + .iconSprite = gMonIcon_Beartic, + .iconPalIndex = 0, + FOOTPRINT(Beartic) + .levelUpLearnset = sBearticLevelUpLearnset, + .teachableLearnset = sBearticTeachableLearnset, }, #endif //P_FAMILY_CUBCHOO #if P_FAMILY_CRYOGONAL [SPECIES_CRYOGONAL] = { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 80 : 70, .baseAttack = 50, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 50 : 30, .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 135, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 80, - .baseDefense = 50, - #else - .baseHP = 70, - .baseDefense = 30, - #endif - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 25, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 180 : 170, .evYield_SpDefense = 2, .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = MON_GENDERLESS, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Cryogonal"), .cryId = CRY_CRYOGONAL, @@ -6707,18 +7925,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cryogonal, 56, 64), + .frontPic = gMonFrontPic_Cryogonal, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cryogonal, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 3, - BACK_PIC(Cryogonal, 56, 64), + .backPic = gMonBackPic_Cryogonal, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Cryogonal), - ICON(Cryogonal, 0), - .footprint = gMonFootprint_Cryogonal, - LEARNSETS(Cryogonal), + .palette = gMonPalette_Cryogonal, + .shinyPalette = gMonShinyPalette_Cryogonal, + .iconSprite = gMonIcon_Cryogonal, + .iconPalIndex = 0, + FOOTPRINT(Cryogonal) + .levelUpLearnset = sCryogonalLevelUpLearnset, + .teachableLearnset = sCryogonalTeachableLearnset, }, #endif //P_FAMILY_CRYOGONAL @@ -6731,7 +7954,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 25, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 200, .expYield = 61, .evYield_Defense = 1, @@ -6739,7 +7962,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Shelmet"), @@ -6757,17 +7980,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shelmet, 40, 40), + .frontPic = gMonFrontPic_Shelmet, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Shelmet, .frontAnimId = ANIM_TWIST, - BACK_PIC(Shelmet, 64, 32), + .backPic = gMonBackPic_Shelmet, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shelmet), - ICON(Shelmet, 1), - .footprint = gMonFootprint_Shelmet, - LEARNSETS(Shelmet), + .palette = gMonPalette_Shelmet, + .shinyPalette = gMonShinyPalette_Shelmet, + .iconSprite = gMonIcon_Shelmet, + .iconPalIndex = 1, + FOOTPRINT(Shelmet) + .levelUpLearnset = sShelmetLevelUpLearnset, + .teachableLearnset = sShelmetTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_KARRABLAST, SPECIES_ACCELGOR}), }, @@ -6779,7 +8007,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 145, .baseSpAttack = 100, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 75, .expYield = 173, .evYield_Speed = 2, @@ -6787,7 +8015,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Accelgor"), @@ -6805,104 +8033,133 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Accelgor, 64, 56), + .frontPic = gMonFrontPic_Accelgor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Accelgor, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Accelgor, 64, 64), + .backPic = gMonBackPic_Accelgor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Accelgor), - ICON(Accelgor, 1), - .footprint = gMonFootprint_Accelgor, - LEARNSETS(Accelgor), + .palette = gMonPalette_Accelgor, + .shinyPalette = gMonShinyPalette_Accelgor, + .iconSprite = gMonIcon_Accelgor, + .iconPalIndex = 1, + FOOTPRINT(Accelgor) + .levelUpLearnset = sAccelgorLevelUpLearnset, + .teachableLearnset = sAccelgorTeachableLearnset, }, #endif //P_FAMILY_SHELMET #if P_FAMILY_STUNFISK -#define STUNFISK_MISC_INFO \ - .catchRate = 75, \ - .expYield = 165, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .speciesName = _("Stunfisk"), \ - .cryId = CRY_STUNFISK, \ - .natDexNum = NATIONAL_DEX_STUNFISK, \ - .categoryName = _("Trap"), \ - .height = 7, \ - .pokemonScale = 365, \ - .pokemonOffset = 14, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Stunfisk, \ - .formSpeciesIdTable = sStunfiskFormSpeciesIdTable - [SPECIES_STUNFISK] = { - STUNFISK_MISC_INFO, .baseHP = 109, .baseAttack = 66, .baseDefense = 84, .baseSpeed = 32, .baseSpAttack = 81, .baseSpDefense = 99, - .types = { TYPE_GROUND, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ELECTRIC), + .catchRate = 75, + .expYield = 165, + .evYield_HP = 2, .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_STATIC, ABILITY_LIMBER, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Stunfisk"), + .cryId = CRY_STUNFISK, + .natDexNum = NATIONAL_DEX_STUNFISK, + .categoryName = _("Trap"), + .height = 7, .weight = 110, .description = COMPOUND_STRING( "It conceals itself in the mud of the\n" "seashore. Then it waits. When prey touch\n" "it, it delivers a jolt of electricity.\n" "It smiles when transmitting electricity."), - FRONT_PIC(Stunfisk, 56, 48), + .pokemonScale = 365, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Stunfisk, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Stunfisk, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stunfisk, 64, 24), + .backPic = gMonBackPic_Stunfisk, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 22, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Stunfisk), - ICON(Stunfisk, 2), - LEARNSETS(Stunfisk), + .palette = gMonPalette_Stunfisk, + .shinyPalette = gMonShinyPalette_Stunfisk, + .iconSprite = gMonIcon_Stunfisk, + .iconPalIndex = 2, + FOOTPRINT(Stunfisk) + .levelUpLearnset = sStunfiskLevelUpLearnset, + .teachableLearnset = sStunfiskTeachableLearnset, + .formSpeciesIdTable = sStunfiskFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_STUNFISK_GALARIAN] = { - STUNFISK_MISC_INFO, .baseHP = 109, .baseAttack = 81, .baseDefense = 99, .baseSpeed = 32, .baseSpAttack = 66, .baseSpDefense = 84, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 75, + .expYield = 165, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .abilities = { ABILITY_MIMICRY, ABILITY_NONE }, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MIMICRY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Stunfisk"), + .cryId = CRY_STUNFISK, + .natDexNum = NATIONAL_DEX_STUNFISK, + .categoryName = _("Trap"), + .height = 7, .weight = 205, .description = COMPOUND_STRING( "Its conspicuous lips lure prey in\n" "as it lies in wait in the mud. When\n" "prey gets close, Stunfisk clamps its\n" "jagged steel fins down on them."), - FRONT_PIC(StunfiskGalarian, 48, 40), + .pokemonScale = 365, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_StunfiskGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_StunfiskGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(StunfiskGalarian, 64, 24), + .backPic = gMonBackPic_StunfiskGalarian, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 23, //.backAnimId = BACK_ANIM_NONE, - PALETTES(StunfiskGalarian), - ICON(StunfiskGalarian, 1), - LEARNSETS(StunfiskGalarian), + .palette = gMonPalette_StunfiskGalarian, + .shinyPalette = gMonShinyPalette_StunfiskGalarian, + .iconSprite = gMonIcon_StunfiskGalarian, + .iconPalIndex = 1, + FOOTPRINT(Stunfisk) .isGalarianForm = TRUE, + .levelUpLearnset = sStunfiskGalarianLevelUpLearnset, + .teachableLearnset = sStunfiskGalarianTeachableLearnset, + .formSpeciesIdTable = sStunfiskFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_STUNFISK @@ -6916,7 +8173,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 70, .evYield_Attack = 1, @@ -6924,7 +8181,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Mienfoo"), @@ -6942,17 +8199,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mienfoo, 40, 48), + .frontPic = gMonFrontPic_Mienfoo, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Mienfoo, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Mienfoo, 56, 40), + .backPic = gMonBackPic_Mienfoo, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Mienfoo), - ICON(Mienfoo, 1), - .footprint = gMonFootprint_Mienfoo, - LEARNSETS(Mienfoo), + .palette = gMonPalette_Mienfoo, + .shinyPalette = gMonShinyPalette_Mienfoo, + .iconSprite = gMonIcon_Mienfoo, + .iconPalIndex = 1, + FOOTPRINT(Mienfoo) + .levelUpLearnset = sMienfooLevelUpLearnset, + .teachableLearnset = sMienfooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_MIENSHAO}), }, @@ -6964,7 +8226,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 179, .evYield_Attack = 2, @@ -6972,7 +8234,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mienshao"), @@ -6990,17 +8252,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Mienshao, 64, 56), + .frontPic = gMonFrontPic_Mienshao, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mienshao, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mienshao, 56, 56), + .backPic = gMonBackPic_Mienshao, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Mienshao), - ICON(Mienshao, 2), - .footprint = gMonFootprint_Mienshao, - LEARNSETS(Mienshao), + .palette = gMonPalette_Mienshao, + .shinyPalette = gMonShinyPalette_Mienshao, + .iconSprite = gMonIcon_Mienshao, + .iconPalIndex = 2, + FOOTPRINT(Mienshao) + .levelUpLearnset = sMienshaoLevelUpLearnset, + .teachableLearnset = sMienshaoTeachableLearnset, }, #endif //P_FAMILY_MIENFOO @@ -7013,7 +8280,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 48, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 170, .evYield_Attack = 2, @@ -7022,7 +8289,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MONSTER), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_SHEER_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Druddigon"), @@ -7040,17 +8307,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Druddigon, 64, 64), + .frontPic = gMonFrontPic_Druddigon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Druddigon, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - BACK_PIC(Druddigon, 64, 56), + .backPic = gMonBackPic_Druddigon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Druddigon), - ICON(Druddigon, 0), - .footprint = gMonFootprint_Druddigon, - LEARNSETS(Druddigon), + .palette = gMonPalette_Druddigon, + .shinyPalette = gMonShinyPalette_Druddigon, + .iconSprite = gMonIcon_Druddigon, + .iconPalIndex = 0, + FOOTPRINT(Druddigon) + .levelUpLearnset = sDruddigonLevelUpLearnset, + .teachableLearnset = sDruddigonTeachableLearnset, }, #endif //P_FAMILY_DRUDDIGON @@ -7063,7 +8335,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -7072,7 +8344,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -7091,17 +8363,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Golett, 56, 56), + .frontPic = gMonFrontPic_Golett, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Golett, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Golett, 64, 56), + .backPic = gMonBackPic_Golett, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Golett), - ICON(Golett, 0), - .footprint = gMonFootprint_Golett, - LEARNSETS(Golett), + .palette = gMonPalette_Golett, + .shinyPalette = gMonShinyPalette_Golett, + .iconSprite = gMonIcon_Golett, + .iconPalIndex = 0, + FOOTPRINT(Golett) + .levelUpLearnset = sGolettLevelUpLearnset, + .teachableLearnset = sGolettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_GOLURK}), }, @@ -7113,7 +8390,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Attack = 2, @@ -7122,7 +8399,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -7141,17 +8418,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 300, .trainerOffset = 0, - FRONT_PIC(Golurk, 64, 64), + .frontPic = gMonFrontPic_Golurk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Golurk, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Golurk, 64, 56), + .backPic = gMonBackPic_Golurk, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Golurk), - ICON(Golurk, 0), - .footprint = gMonFootprint_Golurk, - LEARNSETS(Golurk), + .palette = gMonPalette_Golurk, + .shinyPalette = gMonShinyPalette_Golurk, + .iconSprite = gMonIcon_Golurk, + .iconPalIndex = 0, + FOOTPRINT(Golurk) + .levelUpLearnset = sGolurkLevelUpLearnset, + .teachableLearnset = sGolurkTeachableLearnset, }, #endif //P_FAMILY_GOLETT @@ -7164,7 +8446,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 120, .expYield = 68, .evYield_Attack = 1, @@ -7172,7 +8454,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Pawniard"), @@ -7190,17 +8472,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawniard, 56, 48), + .frontPic = gMonFrontPic_Pawniard, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pawniard, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Pawniard, 64, 48), + .backPic = gMonBackPic_Pawniard, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Pawniard), - ICON(Pawniard, 0), - .footprint = gMonFootprint_Pawniard, - LEARNSETS(Pawniard), + .palette = gMonPalette_Pawniard, + .shinyPalette = gMonShinyPalette_Pawniard, + .iconSprite = gMonIcon_Pawniard, + .iconPalIndex = 0, + FOOTPRINT(Pawniard) + .levelUpLearnset = sPawniardLevelUpLearnset, + .teachableLearnset = sPawniardTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_BISHARP}), }, @@ -7212,7 +8499,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -7220,7 +8507,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Bisharp"), @@ -7238,17 +8525,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Bisharp, 48, 64), + .frontPic = gMonFrontPic_Bisharp, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Bisharp, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Bisharp, 64, 64), + .backPic = gMonBackPic_Bisharp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Bisharp), - ICON(Bisharp, 0), - .footprint = gMonFootprint_Bisharp, - LEARNSETS(Bisharp), + .palette = gMonPalette_Bisharp, + .shinyPalette = gMonShinyPalette_Bisharp, + .iconSprite = gMonIcon_Bisharp, + .iconPalIndex = 0, + FOOTPRINT(Bisharp) + .levelUpLearnset = sBisharpLevelUpLearnset, + .teachableLearnset = sBisharpTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_KINGAMBIT}), }, @@ -7261,7 +8553,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 85, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 25, .expYield = 275, .evYield_Attack = 3, @@ -7269,7 +8561,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_SUPREME_OVERLORD, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Kingambit"), @@ -7287,17 +8579,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kingambit, 64, 64), + .frontPic = gMonFrontPic_Kingambit, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kingambit, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kingambit, 64, 64), + .backPic = gMonBackPic_Kingambit, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kingambit), - ICON(Kingambit, 3), - //.footprint = gMonFootprint_Kingambit, - LEARNSETS(Kingambit), + .palette = gMonPalette_Kingambit, + .shinyPalette = gMonShinyPalette_Kingambit, + .iconSprite = gMonIcon_Kingambit, + .iconPalIndex = 0, + //FOOTPRINT(Kingambit) + .levelUpLearnset = sKingambitLevelUpLearnset, + .teachableLearnset = sKingambitTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_PAWNIARD @@ -7311,7 +8608,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -7319,7 +8616,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bouffalant"), @@ -7337,17 +8634,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Bouffalant, 64, 56), + .frontPic = gMonFrontPic_Bouffalant, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Bouffalant, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Bouffalant, 64, 56), + .backPic = gMonBackPic_Bouffalant, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bouffalant), - ICON(Bouffalant, 2), - .footprint = gMonFootprint_Bouffalant, - LEARNSETS(Bouffalant), + .palette = gMonPalette_Bouffalant, + .shinyPalette = gMonShinyPalette_Bouffalant, + .iconSprite = gMonIcon_Bouffalant, + .iconPalIndex = 2, + FOOTPRINT(Bouffalant) + .levelUpLearnset = sBouffalantLevelUpLearnset, + .teachableLearnset = sBouffalantTeachableLearnset, }, #endif //P_FAMILY_BOUFFALANT @@ -7360,7 +8662,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 37, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 190, .expYield = 70, .evYield_Attack = 1, @@ -7368,7 +8670,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Rufflet"), @@ -7386,48 +8688,48 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rufflet, 32, 48), + .frontPic = gMonFrontPic_Rufflet, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Rufflet, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Rufflet, 48, 56), + .backPic = gMonBackPic_Rufflet, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Rufflet), - ICON(Rufflet, 2), - .footprint = gMonFootprint_Rufflet, - LEARNSETS(Rufflet), + .palette = gMonPalette_Rufflet, + .shinyPalette = gMonShinyPalette_Rufflet, + .iconSprite = gMonIcon_Rufflet, + .iconPalIndex = 2, + FOOTPRINT(Rufflet) + .levelUpLearnset = sRuffletLevelUpLearnset, + .teachableLearnset = sRuffletTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BRAVIARY}, {EVO_NONE, 0, SPECIES_BRAVIARY_HISUIAN}), }, -#define BRAVIARY_MISC_INFO \ - .catchRate = 60, \ - .expYield = 179, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .speciesName = _("Braviary"), \ - .cryId = CRY_BRAVIARY, \ - .natDexNum = NATIONAL_DEX_BRAVIARY, \ - .footprint = gMonFootprint_Braviary, \ - .formSpeciesIdTable = sBraviaryFormSpeciesIdTable - [SPECIES_BRAVIARY] = { - BRAVIARY_MISC_INFO, .baseHP = 100, .baseAttack = 123, .baseDefense = 75, .baseSpeed = 80, .baseSpAttack = 57, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 60, + .expYield = 179, .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Braviary"), + .cryId = CRY_BRAVIARY, + .natDexNum = NATIONAL_DEX_BRAVIARY, .categoryName = _("Valiant"), .height = 15, .weight = 410, @@ -7440,33 +8742,49 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Braviary, 64, 64), + .frontPic = gMonFrontPic_Braviary, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Braviary, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(Braviary, 64, 48), + .backPic = gMonBackPic_Braviary, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Braviary), - ICON(Braviary, 0), - LEARNSETS(Braviary), + .palette = gMonPalette_Braviary, + .shinyPalette = gMonShinyPalette_Braviary, + .iconSprite = gMonIcon_Braviary, + .iconPalIndex = 0, + FOOTPRINT(Braviary) + .levelUpLearnset = sBraviaryLevelUpLearnset, + .teachableLearnset = sBraviaryTeachableLearnset, + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_BRAVIARY_HISUIAN] = { - BRAVIARY_MISC_INFO, .baseHP = 110, .baseAttack = 83, .baseDefense = 70, .baseSpeed = 65, .baseSpAttack = 112, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 60, + .expYield = 179, .evYield_SpAttack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Braviary"), + .cryId = CRY_BRAVIARY, + .natDexNum = NATIONAL_DEX_BRAVIARY, .categoryName = _("Battle Cry"), .height = 17, .weight = 434, @@ -7478,18 +8796,25 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(BraviaryHisuian, 64, 64), + .frontPic = gMonFrontPic_BraviaryHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BraviaryHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(BraviaryHisuian, 64, 56), + .backPic = gMonBackPic_BraviaryHisuian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BraviaryHisuian), - ICON(BraviaryHisuian, 2), - LEARNSETS(BraviaryHisuian), + .palette = gMonPalette_BraviaryHisuian, + .shinyPalette = gMonShinyPalette_BraviaryHisuian, + .iconSprite = gMonIcon_BraviaryHisuian, + .iconPalIndex = 2, + FOOTPRINT(Braviary) .isHisuianForm = TRUE, + .levelUpLearnset = sBraviaryHisuianLevelUpLearnset, + .teachableLearnset = sBraviaryHisuianTeachableLearnset, + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_RUFFLET @@ -7503,7 +8828,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 190, .expYield = 74, .evYield_Defense = 1, @@ -7511,7 +8836,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Vullaby"), @@ -7529,17 +8854,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vullaby, 56, 56), + .frontPic = gMonFrontPic_Vullaby, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Vullaby, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Vullaby, 64, 48), + .backPic = gMonBackPic_Vullaby, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Vullaby), - ICON(Vullaby, 0), - .footprint = gMonFootprint_Vullaby, - LEARNSETS(Vullaby), + .palette = gMonPalette_Vullaby, + .shinyPalette = gMonShinyPalette_Vullaby, + .iconSprite = gMonIcon_Vullaby, + .iconPalIndex = 0, + FOOTPRINT(Vullaby) + .levelUpLearnset = sVullabyLevelUpLearnset, + .teachableLearnset = sVullabyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_MANDIBUZZ}), }, @@ -7551,7 +8881,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 55, .baseSpDefense = 95, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 60, .expYield = 179, .evYield_SpAttack = 2, @@ -7559,7 +8889,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mandibuzz"), @@ -7577,17 +8907,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mandibuzz, 48, 64), + .frontPic = gMonFrontPic_Mandibuzz, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Mandibuzz, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Mandibuzz, 64, 48), + .backPic = gMonBackPic_Mandibuzz, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Mandibuzz), - ICON(Mandibuzz, 1), - .footprint = gMonFootprint_Mandibuzz, - LEARNSETS(Mandibuzz), + .palette = gMonPalette_Mandibuzz, + .shinyPalette = gMonShinyPalette_Mandibuzz, + .iconSprite = gMonIcon_Mandibuzz, + .iconPalIndex = 1, + FOOTPRINT(Mandibuzz) + .levelUpLearnset = sMandibuzzLevelUpLearnset, + .teachableLearnset = sMandibuzzTeachableLearnset, }, #endif //P_FAMILY_VULLABY @@ -7600,7 +8935,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 105, .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, .expYield = 169, .evYield_SpAttack = 2, @@ -7608,7 +8943,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Heatmor"), @@ -7626,17 +8961,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Heatmor, 64, 56), + .frontPic = gMonFrontPic_Heatmor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Heatmor, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Heatmor, 64, 24), + .backPic = gMonBackPic_Heatmor, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Heatmor), - ICON(Heatmor, 2), - .footprint = gMonFootprint_Heatmor, - LEARNSETS(Heatmor), + .palette = gMonPalette_Heatmor, + .shinyPalette = gMonShinyPalette_Heatmor, + .iconSprite = gMonIcon_Heatmor, + .iconPalIndex = 2, + FOOTPRINT(Heatmor) + .levelUpLearnset = sHeatmorLevelUpLearnset, + .teachableLearnset = sHeatmorTeachableLearnset, }, #endif //P_FAMILY_HEATMOR @@ -7649,7 +8989,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 109, .baseSpAttack = 48, .baseSpDefense = 48, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -7657,7 +8997,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Durant"), @@ -7675,17 +9015,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Durant, 48, 32), + .frontPic = gMonFrontPic_Durant, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Durant, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Durant, 64, 32), + .backPic = gMonBackPic_Durant, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Durant), - ICON(Durant, 0), - .footprint = gMonFootprint_Durant, - LEARNSETS(Durant), + .palette = gMonPalette_Durant, + .shinyPalette = gMonShinyPalette_Durant, + .iconSprite = gMonIcon_Durant, + .iconPalIndex = 0, + FOOTPRINT(Durant) + .levelUpLearnset = sDurantLevelUpLearnset, + .teachableLearnset = sDurantTeachableLearnset, }, #endif //P_FAMILY_DURANT @@ -7698,7 +9043,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 38, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_Attack = 1, @@ -7706,8 +9051,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_HUSTLE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Deino"), .cryId = CRY_DEINO, @@ -7724,17 +9069,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Deino, 40, 48), + .frontPic = gMonFrontPic_Deino, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Deino, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Deino, 48, 48), + .backPic = gMonBackPic_Deino, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Deino), - ICON(Deino, 2), - .footprint = gMonFootprint_Deino, - LEARNSETS(Deino), + .palette = gMonPalette_Deino, + .shinyPalette = gMonShinyPalette_Deino, + .iconSprite = gMonIcon_Deino, + .iconPalIndex = 2, + FOOTPRINT(Deino) + .levelUpLearnset = sDeinoLevelUpLearnset, + .teachableLearnset = sDeinoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_ZWEILOUS}), }, @@ -7746,7 +9096,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, .expYield = 147, .evYield_Attack = 2, @@ -7754,8 +9104,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_HUSTLE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Zweilous"), .cryId = CRY_ZWEILOUS, @@ -7772,17 +9122,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Zweilous, 64, 56), + .frontPic = gMonFrontPic_Zweilous, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Zweilous, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Zweilous, 64, 56), + .backPic = gMonBackPic_Zweilous, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Zweilous), - ICON(Zweilous, 2), - .footprint = gMonFootprint_Zweilous, - LEARNSETS(Zweilous), + .palette = gMonPalette_Zweilous, + .shinyPalette = gMonShinyPalette_Zweilous, + .iconSprite = gMonIcon_Zweilous, + .iconPalIndex = 2, + FOOTPRINT(Zweilous) + .levelUpLearnset = sZweilousLevelUpLearnset, + .teachableLearnset = sZweilousTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 64, SPECIES_HYDREIGON}), }, @@ -7794,16 +9149,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 98, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Hydreigon"), .cryId = CRY_HYDREIGON, @@ -7820,18 +9175,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Hydreigon, 64, 64), + .frontPic = gMonFrontPic_Hydreigon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hydreigon, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Hydreigon, 64, 56), + .backPic = gMonBackPic_Hydreigon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Hydreigon), - ICON(Hydreigon, 2), - .footprint = gMonFootprint_Hydreigon, - LEARNSETS(Hydreigon), + .palette = gMonPalette_Hydreigon, + .shinyPalette = gMonShinyPalette_Hydreigon, + .iconSprite = gMonIcon_Hydreigon, + .iconPalIndex = 2, + FOOTPRINT(Hydreigon) + .levelUpLearnset = sHydreigonLevelUpLearnset, + .teachableLearnset = sHydreigonTeachableLearnset, }, #endif //P_FAMILY_DEINO @@ -7844,7 +9204,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 50, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_FIRE }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIRE), .catchRate = 45, .expYield = 72, .evYield_Attack = 1, @@ -7852,7 +9212,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Larvesta"), @@ -7870,17 +9230,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Larvesta, 40, 48), + .frontPic = gMonFrontPic_Larvesta, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Larvesta, .frontAnimId = ANIM_GLOW_ORANGE, - BACK_PIC(Larvesta, 64, 48), + .backPic = gMonBackPic_Larvesta, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Larvesta), - ICON(Larvesta, 0), - .footprint = gMonFootprint_Larvesta, - LEARNSETS(Larvesta), + .palette = gMonPalette_Larvesta, + .shinyPalette = gMonShinyPalette_Larvesta, + .iconSprite = gMonIcon_Larvesta, + .iconPalIndex = 0, + FOOTPRINT(Larvesta) + .levelUpLearnset = sLarvestaLevelUpLearnset, + .teachableLearnset = sLarvestaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 59, SPECIES_VOLCARONA}), }, @@ -7892,9 +9257,9 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 100, .baseSpAttack = 135, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIRE }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIRE), .catchRate = 15, - .expYield = 248, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 275 : 248, .evYield_SpAttack = 3, .itemCommon = ITEM_SILVER_POWDER, .itemRare = ITEM_SILVER_POWDER, @@ -7902,7 +9267,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Volcarona"), @@ -7920,18 +9285,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Volcarona, 64, 56), + .frontPic = gMonFrontPic_Volcarona, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Volcarona, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Volcarona, 64, 64), + .backPic = gMonBackPic_Volcarona, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Volcarona), - ICON(Volcarona, 0), - .footprint = gMonFootprint_Volcarona, - LEARNSETS(Volcarona), + .palette = gMonPalette_Volcarona, + .shinyPalette = gMonShinyPalette_Volcarona, + .iconSprite = gMonIcon_Volcarona, + .iconPalIndex = 0, + FOOTPRINT(Volcarona) + .levelUpLearnset = sVolcaronaLevelUpLearnset, + .teachableLearnset = sVolcaronaTeachableLearnset, }, #endif //P_FAMILY_LARVESTA @@ -7944,18 +9314,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 90, .baseSpDefense = 72, - .types = { TYPE_STEEL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cobalion"), .cryId = CRY_COBALION, .natDexNum = NATIONAL_DEX_COBALION, @@ -7971,17 +9340,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Cobalion, 48, 64), + .frontPic = gMonFrontPic_Cobalion, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cobalion, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cobalion, 48, 64), + .backPic = gMonBackPic_Cobalion, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Cobalion), - ICON(Cobalion, 0), - .footprint = gMonFootprint_Cobalion, - LEARNSETS(Cobalion), + .palette = gMonPalette_Cobalion, + .shinyPalette = gMonShinyPalette_Cobalion, + .iconSprite = gMonIcon_Cobalion, + .iconPalIndex = 0, + FOOTPRINT(Cobalion) + .isLegendary = TRUE, + .levelUpLearnset = sCobalionLevelUpLearnset, + .teachableLearnset = sCobalionTeachableLearnset, }, #endif //P_FAMILY_COBALION @@ -7994,18 +9369,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 72, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Terrakion"), .cryId = CRY_TERRAKION, .natDexNum = NATIONAL_DEX_TERRAKION, @@ -8021,17 +9395,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 336, .trainerOffset = 4, - FRONT_PIC(Terrakion, 64, 56), + .frontPic = gMonFrontPic_Terrakion, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Terrakion, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Terrakion, 64, 48), + .backPic = gMonBackPic_Terrakion, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Terrakion), - ICON(Terrakion, 2), - .footprint = gMonFootprint_Terrakion, - LEARNSETS(Terrakion), + .palette = gMonPalette_Terrakion, + .shinyPalette = gMonShinyPalette_Terrakion, + .iconSprite = gMonIcon_Terrakion, + .iconPalIndex = 2, + FOOTPRINT(Terrakion) + .isLegendary = TRUE, + .levelUpLearnset = sTerrakionLevelUpLearnset, + .teachableLearnset = sTerrakionTeachableLearnset, }, #endif //P_FAMILY_TERRAKION @@ -8044,18 +9424,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 90, .baseSpDefense = 129, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isLegendary = TRUE, .speciesName = _("Virizion"), .cryId = CRY_VIRIZION, .natDexNum = NATIONAL_DEX_VIRIZION, @@ -8071,54 +9450,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 344, .trainerOffset = 4, - FRONT_PIC(Virizion, 48, 64), + .frontPic = gMonFrontPic_Virizion, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Virizion, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Virizion, 64, 56), + .backPic = gMonBackPic_Virizion, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Virizion), - ICON(Virizion, 1), - .footprint = gMonFootprint_Virizion, - LEARNSETS(Virizion), + .palette = gMonPalette_Virizion, + .shinyPalette = gMonShinyPalette_Virizion, + .iconSprite = gMonIcon_Virizion, + .iconPalIndex = 1, + FOOTPRINT(Virizion) + .isLegendary = TRUE, + .levelUpLearnset = sVirizionLevelUpLearnset, + .teachableLearnset = sVirizionTeachableLearnset, }, #endif //P_FAMILY_VIRIZION #if P_FAMILY_TORNADUS -#define TORNADUS_MISC_INFO \ - .types = { TYPE_FLYING, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isLegendary = TRUE, \ - .speciesName = _("Tornadus"), \ - .natDexNum = NATIONAL_DEX_TORNADUS, \ - .categoryName = _("Cyclone"), \ - .weight = 630, \ - .footprint = gMonFootprint_Tornadus, \ - LEARNSETS(Tornadus), \ - .formSpeciesIdTable = sTornadusFormSpeciesIdTable, \ - .formChangeTable = sTornadusFormChangeTable - [SPECIES_TORNADUS_INCARNATE] = { - TORNADUS_MISC_INFO, .baseHP = 79, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 111, .baseSpAttack = 125, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tornadus"), .cryId = CRY_TORNADUS_INCARNATE, + .natDexNum = NATIONAL_DEX_TORNADUS, + .categoryName = _("Cyclone"), .height = 15, + .weight = 630, .description = COMPOUND_STRING( "Tornadus expels massive energy from\n" "its tail, causing severe storms.\n" @@ -8128,30 +9505,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(TornadusIncarnate, 64, 64), + .frontPic = gMonFrontPic_TornadusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_TornadusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(TornadusIncarnate, 64, 64), + .backPic = gMonBackPic_TornadusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(TornadusIncarnate), - ICON(TornadusIncarnate, 1), + .palette = gMonPalette_TornadusIncarnate, + .shinyPalette = gMonShinyPalette_TornadusIncarnate, + .iconSprite = gMonIcon_TornadusIncarnate, + .iconPalIndex = 1, + FOOTPRINT(Tornadus) + .isLegendary = TRUE, + .levelUpLearnset = sTornadusLevelUpLearnset, + .teachableLearnset = sTornadusTeachableLearnset, + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, + .formChangeTable = sTornadusFormChangeTable, }, [SPECIES_TORNADUS_THERIAN] = { - TORNADUS_MISC_INFO, .baseHP = 79, .baseAttack = 100, .baseDefense = 80, .baseSpeed = 121, .baseSpAttack = 110, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_REGENERATOR, ABILITY_NONE, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tornadus"), .cryId = CRY_TORNADUS_THERIAN, + .natDexNum = NATIONAL_DEX_TORNADUS, + .categoryName = _("Cyclone"), .height = 14, + .weight = 630, .description = COMPOUND_STRING( "An example of what is known as a\n" "“form change”. Tornadus has been\n" @@ -8161,52 +9561,54 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(TornadusTherian, 64, 64), + .frontPic = gMonFrontPic_TornadusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TornadusTherian, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(TornadusTherian, 56, 64), + .backPic = gMonBackPic_TornadusTherian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(TornadusTherian), - ICON(TornadusTherian, 1), + .palette = gMonPalette_TornadusTherian, + .shinyPalette = gMonShinyPalette_TornadusTherian, + .iconSprite = gMonIcon_TornadusTherian, + .iconPalIndex = 1, + FOOTPRINT(Tornadus) + .isLegendary = TRUE, + .levelUpLearnset = sTornadusLevelUpLearnset, + .teachableLearnset = sTornadusTeachableLearnset, + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, + .formChangeTable = sTornadusFormChangeTable, }, #endif //P_FAMILY_TORNADUS #if P_FAMILY_THUNDURUS -#define THUNDURUS_MISC_INFO \ - .types = { TYPE_ELECTRIC, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Thundurus"), \ - .natDexNum = NATIONAL_DEX_THUNDURUS, \ - .categoryName = _("Bolt Strike"), \ - .weight = 610, \ - .footprint = gMonFootprint_Thundurus, \ - LEARNSETS(Thundurus), \ - .formSpeciesIdTable = sThundurusFormSpeciesIdTable, \ - .formChangeTable = sThundurusFormChangeTable - [SPECIES_THUNDURUS_INCARNATE] = { - THUNDURUS_MISC_INFO, .baseHP = 79, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 111, .baseSpAttack = 125, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Thundurus"), .cryId = CRY_THUNDURUS_INCARNATE, + .natDexNum = NATIONAL_DEX_THUNDURUS, + .categoryName = _("Bolt Strike"), .height = 15, + .weight = 610, .description = COMPOUND_STRING( "The spikes on its tail discharge immense\n" "bolts of lightning. Countless charred\n" @@ -8216,31 +9618,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(ThundurusIncarnate, 64, 64), + .frontPic = gMonFrontPic_ThundurusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ThundurusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(ThundurusIncarnate, 64, 64), + .backPic = gMonBackPic_ThundurusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(ThundurusIncarnate), - ICON(ThundurusIncarnate, 0), + .palette = gMonPalette_ThundurusIncarnate, + .shinyPalette = gMonShinyPalette_ThundurusIncarnate, + .iconSprite = gMonIcon_ThundurusIncarnate, + .iconPalIndex = 0, + FOOTPRINT(Thundurus) + .isLegendary = TRUE, + .levelUpLearnset = sThundurusLevelUpLearnset, + .teachableLearnset = sThundurusTeachableLearnset, + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, + .formChangeTable = sThundurusFormChangeTable, }, [SPECIES_THUNDURUS_THERIAN] = { - THUNDURUS_MISC_INFO, .baseHP = 79, .baseAttack = 105, .baseDefense = 70, .baseSpeed = 101, .baseSpAttack = 145, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE, ABILITY_VOLT_ABSORB }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Thundurus"), .cryId = CRY_THUNDURUS_THERIAN, + .natDexNum = NATIONAL_DEX_THUNDURUS, + .categoryName = _("Bolt Strike"), .height = 30, + .weight = 610, .description = COMPOUND_STRING( "It pulverizes foes into\n" "nothingness with showers of devastatingly\n" @@ -8250,16 +9674,26 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(ThundurusTherian, 64, 64), + .frontPic = gMonFrontPic_ThundurusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_ThundurusTherian, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(ThundurusTherian, 64, 64), + .backPic = gMonBackPic_ThundurusTherian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(ThundurusTherian), - ICON(ThundurusTherian, 0), + .palette = gMonPalette_ThundurusTherian, + .shinyPalette = gMonShinyPalette_ThundurusTherian, + .iconSprite = gMonIcon_ThundurusTherian, + .iconPalIndex = 0, + FOOTPRINT(Thundurus) + .isLegendary = TRUE, + .levelUpLearnset = sThundurusLevelUpLearnset, + .teachableLearnset = sThundurusTeachableLearnset, + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, + .formChangeTable = sThundurusFormChangeTable, }, #endif //P_FAMILY_THUNDURUS @@ -8272,18 +9706,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 120, - .types = { TYPE_DRAGON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIRE), .catchRate = 3, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Reshiram"), .cryId = CRY_RESHIRAM, .natDexNum = NATIONAL_DEX_RESHIRAM, @@ -8299,17 +9732,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 445, .trainerOffset = 8, - FRONT_PIC(Reshiram, 64, 64), + .frontPic = gMonFrontPic_Reshiram, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Reshiram, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Reshiram, 64, 64), + .backPic = gMonBackPic_Reshiram, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Reshiram), - ICON(Reshiram, 0), - .footprint = gMonFootprint_Reshiram, - LEARNSETS(Reshiram), + .palette = gMonPalette_Reshiram, + .shinyPalette = gMonShinyPalette_Reshiram, + .iconSprite = gMonIcon_Reshiram, + .iconPalIndex = 0, + FOOTPRINT(Reshiram) + .isLegendary = TRUE, + .levelUpLearnset = sReshiramLevelUpLearnset, + .teachableLearnset = sReshiramTeachableLearnset, }, #endif //P_FAMILY_RESHIRAM @@ -8322,18 +9761,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 120, .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ELECTRIC), .catchRate = 3, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAVOLT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Zekrom"), .cryId = CRY_ZEKROM, .natDexNum = NATIONAL_DEX_ZEKROM, @@ -8349,54 +9787,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 412, .trainerOffset = 10, - FRONT_PIC(Zekrom, 64, 64), + .frontPic = gMonFrontPic_Zekrom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zekrom, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Zekrom, 64, 64), + .backPic = gMonBackPic_Zekrom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Zekrom), - ICON(Zekrom, 2), - .footprint = gMonFootprint_Zekrom, - LEARNSETS(Zekrom), + .palette = gMonPalette_Zekrom, + .shinyPalette = gMonShinyPalette_Zekrom, + .iconSprite = gMonIcon_Zekrom, + .iconPalIndex = 2, + FOOTPRINT(Zekrom) + .isLegendary = TRUE, + .levelUpLearnset = sZekromLevelUpLearnset, + .teachableLearnset = sZekromTeachableLearnset, }, #endif //P_FAMILY_ZEKROM #if P_FAMILY_LANDORUS -#define LANDORUS_MISC_INFO \ - .types = { TYPE_GROUND, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 270, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .isLegendary = TRUE, \ - .speciesName = _("Landorus"), \ - .natDexNum = NATIONAL_DEX_LANDORUS, \ - .categoryName = _("Abundance"), \ - .weight = 680, \ - .footprint = gMonFootprint_Landorus, \ - LEARNSETS(Landorus), \ - .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ - .formChangeTable = sLandorusFormChangeTable - [SPECIES_LANDORUS_INCARNATE] = { - LANDORUS_MISC_INFO, .baseHP = 89, .baseAttack = 125, .baseDefense = 90, .baseSpeed = 101, .baseSpAttack = 115, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SAND_FORCE, ABILITY_NONE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Landorus"), .cryId = CRY_LANDORUS_INCARNATE, + .natDexNum = NATIONAL_DEX_LANDORUS, + .categoryName = _("Abundance"), .height = 15, + .weight = 680, .description = COMPOUND_STRING( "The energy that comes pouring from its tail\n" "increases the nutrition in the soil, making\n" @@ -8406,31 +9842,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(LandorusIncarnate, 64, 64), + .frontPic = gMonFrontPic_LandorusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_LandorusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(LandorusIncarnate, 64, 64), + .backPic = gMonBackPic_LandorusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LandorusIncarnate), - ICON(LandorusIncarnate, 0), + .palette = gMonPalette_LandorusIncarnate, + .shinyPalette = gMonShinyPalette_LandorusIncarnate, + .iconSprite = gMonIcon_LandorusIncarnate, + .iconPalIndex = 0, + FOOTPRINT(Landorus) + .isLegendary = TRUE, + .levelUpLearnset = sLandorusLevelUpLearnset, + .teachableLearnset = sLandorusTeachableLearnset, + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, + .formChangeTable = sLandorusFormChangeTable, }, [SPECIES_LANDORUS_THERIAN] = { - LANDORUS_MISC_INFO, .baseHP = 89, .baseAttack = 145, .baseDefense = 90, .baseSpeed = 91, .baseSpAttack = 105, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 3, - .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE }, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Landorus"), .cryId = CRY_LANDORUS_THERIAN, + .natDexNum = NATIONAL_DEX_LANDORUS, + .categoryName = _("Abundance"), .height = 13, + .weight = 680, .description = COMPOUND_STRING( "Landorus soars through the sky in\n" "this form, bestowing plentiful\n" @@ -8440,53 +9898,57 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(LandorusTherian, 64, 64), + .frontPic = gMonFrontPic_LandorusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LandorusTherian, .frontAnimId = ANIM_CIRCULAR_VIBRATE, - BACK_PIC(LandorusTherian, 64, 56), + .backPic = gMonBackPic_LandorusTherian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(LandorusTherian), - ICON(LandorusTherian, 0), + .palette = gMonPalette_LandorusTherian, + .shinyPalette = gMonShinyPalette_LandorusTherian, + .iconSprite = gMonIcon_LandorusTherian, + .iconPalIndex = 0, + FOOTPRINT(Landorus) + .isLegendary = TRUE, + .levelUpLearnset = sLandorusLevelUpLearnset, + .teachableLearnset = sLandorusTeachableLearnset, + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, + .formChangeTable = sLandorusFormChangeTable, }, #endif //P_FAMILY_LANDORUS #if P_FAMILY_KYUREM -#define KYUREM_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_ICE }, \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = TRUE, \ - .speciesName = _("Kyurem"), \ - .natDexNum = NATIONAL_DEX_KYUREM, \ - .categoryName = _("Boundary"), \ - .weight = 3250, \ - .footprint = gMonFootprint_Kyurem, \ - .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_KYUREM] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 130, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 130, .baseSpDefense = 90, - .expYield = 297, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 330 : 297, .evYield_HP = 1, .evYield_Attack = 1, .evYield_SpAttack = 1, - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 30, + .weight = 3250, .description = COMPOUND_STRING( "This legendary ice Pokémon waits for a\n" "hero to fill in the missing parts of its\n" @@ -8496,33 +9958,59 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(Kyurem, 64, 64), + .frontPic = gMonFrontPic_Kyurem, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kyurem, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kyurem, 64, 40), + .backPic = gMonBackPic_Kyurem, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Kyurem), - ICON(Kyurem, 0), - LEARNSETS(Kyurem), + .palette = gMonPalette_Kyurem, + .shinyPalette = gMonShinyPalette_Kyurem, + .iconSprite = gMonIcon_Kyurem, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .levelUpLearnset = sKyuremLevelUpLearnset, + .teachableLearnset = sKyuremTeachableLearnset, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_KYUREM_WHITE] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 120, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 170, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 350, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 315, + #else + .expYield = 297, + #endif .evYield_SpAttack = 3, - .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM_WHITE, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 36, + .weight = 3250, .description = COMPOUND_STRING( "The sameness of Reshiram's and\n" "Kyurem's genes allowed Kyurem to\n" @@ -8532,34 +10020,59 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(KyuremWhite, 64, 64), + .frontPic = gMonFrontPic_KyuremWhite, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyuremWhite, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(KyuremWhite, 64, 64), + .backPic = gMonBackPic_KyuremWhite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(KyuremWhite), - ICON(KyuremWhite, 0), + .palette = gMonPalette_KyuremWhite, + .shinyPalette = gMonShinyPalette_KyuremWhite, + .iconSprite = gMonIcon_KyuremWhite, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .cannotBeTraded = TRUE, .levelUpLearnset = sKyuremWhiteLevelUpLearnset, .teachableLearnset = sKyuremTeachableLearnset, - .cannotBeTraded = TRUE, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, [SPECIES_KYUREM_BLACK] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 170, .baseDefense = 100, .baseSpeed = 95, .baseSpAttack = 120, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 350, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 315, + #else + .expYield = 297, + #endif .evYield_Attack = 3, - .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAVOLT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM_BLACK, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 33, + .weight = 3250, .description = COMPOUND_STRING( "The sameness of Zekrom's and\n" "Kyurem's genes allowed Kyurem to absorb\n" @@ -8569,233 +10082,317 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(KyuremBlack, 64, 64), + .frontPic = gMonFrontPic_KyuremBlack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyuremBlack, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(KyuremBlack, 64, 64), + .backPic = gMonBackPic_KyuremBlack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(KyuremBlack), - ICON(KyuremBlack, 0), + .palette = gMonPalette_KyuremBlack, + .shinyPalette = gMonShinyPalette_KyuremBlack, + .iconSprite = gMonIcon_KyuremBlack, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .cannotBeTraded = TRUE, .levelUpLearnset = sKyuremBlackLevelUpLearnset, .teachableLearnset = sKyuremTeachableLearnset, - .cannotBeTraded = TRUE, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, #endif //P_FUSION_FORMS #endif //P_FAMILY_KYUREM #if P_FAMILY_KELDEO -#define KELDEO_MISC_INFO \ - .baseHP = 91, \ - .baseAttack = 72, \ - .baseDefense = 90, \ - .baseSpeed = 108, \ - .baseSpAttack = 129, \ - .baseSpDefense = 90, \ - .types = { TYPE_WATER, TYPE_FIGHTING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 80, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .isMythical = TRUE, \ - .speciesName = _("Keldeo"), \ - .cryId = CRY_KELDEO, \ - .natDexNum = NATIONAL_DEX_KELDEO, \ - .categoryName = _("Colt"), \ - .height = 14, \ - .weight = 485, \ - .pokemonScale = 265, \ - .pokemonOffset = 2, \ - .trainerScale = 262, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Keldeo, \ - LEARNSETS(Keldeo), \ - .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, \ - .formChangeTable = sKeldeoFormChangeTable - [SPECIES_KELDEO_ORDINARY] = { - KELDEO_MISC_INFO, + .baseHP = 91, + .baseAttack = 72, + .baseDefense = 90, + .baseSpeed = 108, + .baseSpAttack = 129, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Keldeo"), + .cryId = CRY_KELDEO, + .natDexNum = NATIONAL_DEX_KELDEO, + .categoryName = _("Colt"), + .height = 14, + .weight = 485, .description = COMPOUND_STRING( "When it is resolute, its body fills with\n" "power and it becomes swifter. It crosses\n" "the world, running over the surfaces of\n" "oceans and rivers."), - FRONT_PIC(KeldeoOrdinary, 56, 56), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_KeldeoOrdinary, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_KeldeoOrdinary, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KeldeoOrdinary, 56, 64), + .backPic = gMonBackPic_KeldeoOrdinary, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(KeldeoOrdinary), - ICON(KeldeoOrdinary, 0), + .palette = gMonPalette_KeldeoOrdinary, + .shinyPalette = gMonShinyPalette_KeldeoOrdinary, + .iconSprite = gMonIcon_KeldeoOrdinary, + .iconPalIndex = 0, + FOOTPRINT(Keldeo) + .isMythical = TRUE, + .levelUpLearnset = sKeldeoLevelUpLearnset, + .teachableLearnset = sKeldeoTeachableLearnset, + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, + .formChangeTable = sKeldeoFormChangeTable, }, [SPECIES_KELDEO_RESOLUTE] = { - KELDEO_MISC_INFO, + .baseHP = 91, + .baseAttack = 72, + .baseDefense = 90, + .baseSpeed = 108, + .baseSpAttack = 129, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Keldeo"), + .cryId = CRY_KELDEO, + .natDexNum = NATIONAL_DEX_KELDEO, + .categoryName = _("Colt"), + .height = 14, + .weight = 485, .description = COMPOUND_STRING( "The power that lay hidden in its\n" "body now covers its horn, turning it\n" "into a sword that can slice through\n" "anything."), - FRONT_PIC(KeldeoResolute, 64, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_KeldeoResolute, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_KeldeoResolute, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(KeldeoResolute, 64, 64), + .backPic = gMonBackPic_KeldeoResolute, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(KeldeoResolute), - ICON(KeldeoResolute, 0), + .palette = gMonPalette_KeldeoResolute, + .shinyPalette = gMonShinyPalette_KeldeoResolute, + .iconSprite = gMonIcon_KeldeoResolute, + .iconPalIndex = 0, + FOOTPRINT(Keldeo) + .isMythical = TRUE, + .levelUpLearnset = sKeldeoLevelUpLearnset, + .teachableLearnset = sKeldeoTeachableLearnset, + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, + .formChangeTable = sKeldeoFormChangeTable, }, #endif //P_FAMILY_KELDEO #if P_FAMILY_MELOETTA -#define MELOETTA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Speed = 1, \ - .itemCommon = ITEM_STAR_PIECE, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = TRUE, \ - .isMythical = TRUE, \ - .speciesName = _("Meloetta"), \ - .cryId = CRY_MELOETTA, \ - .natDexNum = NATIONAL_DEX_MELOETTA, \ - .categoryName = _("Melody"), \ - .height = 6, \ - .weight = 65, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Meloetta, \ - LEARNSETS(Meloetta), \ - .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, \ - .formChangeTable = sMeloettaFormChangeTable - [SPECIES_MELOETTA_ARIA] = { - MELOETTA_MISC_INFO, .baseHP = 100, .baseAttack = 77, .baseDefense = 77, .baseSpeed = 90, .baseSpAttack = 128, .baseSpDefense = 128, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Speed = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, + .itemCommon = ITEM_STAR_PIECE, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Meloetta"), + .cryId = CRY_MELOETTA, + .natDexNum = NATIONAL_DEX_MELOETTA, + .categoryName = _("Melody"), + .height = 6, + .weight = 65, .description = COMPOUND_STRING( "The melodies sung by Meloetta have the\n" "power to make Pokémon that hear them\n" "happy or sad. Many famous songs have been\n" "inspired by the tunes that Meloetta plays."), - FRONT_PIC(MeloettaAria, 32, 48), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeloettaAria, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MeloettaAria, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 8, - BACK_PIC(MeloettaAria, 48, 56), + .backPic = gMonBackPic_MeloettaAria, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(MeloettaAria), - ICON(MeloettaAria, 4), + .palette = gMonPalette_MeloettaAria, + .shinyPalette = gMonShinyPalette_MeloettaAria, + .iconSprite = gMonIcon_MeloettaAria, + .iconPalIndex = 4, + FOOTPRINT(Meloetta) + .isMythical = TRUE, + .levelUpLearnset = sMeloettaLevelUpLearnset, + .teachableLearnset = sMeloettaTeachableLearnset, + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, + .formChangeTable = sMeloettaFormChangeTable, }, [SPECIES_MELOETTA_PIROUETTE] = { - MELOETTA_MISC_INFO, .baseHP = 100, .baseAttack = 128, .baseDefense = 90, .baseSpeed = 128, .baseSpAttack = 77, .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 1, .evYield_Defense = 1, + .evYield_Speed = 1, + .itemCommon = ITEM_STAR_PIECE, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Meloetta"), + .cryId = CRY_MELOETTA, + .natDexNum = NATIONAL_DEX_MELOETTA, + .categoryName = _("Melody"), + .height = 6, + .weight = 65, .description = COMPOUND_STRING( "Meloetta's melodies are sung with\n" "a special vocalization method that can\n" "control the feelings of those who hear it."), - FRONT_PIC(MeloettaPirouette, 40, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeloettaPirouette, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_MeloettaPirouette, .frontAnimId = ANIM_H_SLIDE_SLOW, .enemyMonElevation = 5, - BACK_PIC(MeloettaPirouette, 56, 64), + .backPic = gMonBackPic_MeloettaPirouette, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(MeloettaPirouette), - ICON(MeloettaPirouette, 0), + .palette = gMonPalette_MeloettaPirouette, + .shinyPalette = gMonShinyPalette_MeloettaPirouette, + .iconSprite = gMonIcon_MeloettaPirouette, + .iconPalIndex = 0, + FOOTPRINT(Meloetta) + .isMythical = TRUE, + .levelUpLearnset = sMeloettaLevelUpLearnset, + .teachableLearnset = sMeloettaTeachableLearnset, + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, + .formChangeTable = sMeloettaFormChangeTable, }, #endif //P_FAMILY_MELOETTA #if P_FAMILY_GENESECT -#define GENESECT_SPECIES_INFO(form) \ - { \ - .baseHP = 71, \ - .baseAttack = 120, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_BUG, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 1, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Genesect"), \ - .cryId = CRY_GENESECT, \ - .natDexNum = NATIONAL_DEX_GENESECT, \ - .categoryName = _("Paleozoic"), \ - .height = 15, \ - .weight = 825, \ - .description = gGenesectPokedexText, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - FRONT_PIC(Genesect, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Genesect, \ - .frontAnimId = ANIM_H_VIBRATE, \ - BACK_PIC(Genesect, 64, 48), \ - .backPicYOffset = 8, \ - .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ - PALETTES(form), \ - ICON(Genesect, 2), \ - .footprint = gMonFootprint_Genesect, \ - LEARNSETS(Genesect), \ - .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ - .formChangeTable = sGenesectFormChangeTable, \ - .isMythical = TRUE, \ +#define GENESECT_SPECIES_INFO(form) \ + { \ + .baseHP = 71, \ + .baseAttack = 120, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 120, \ + .baseSpDefense = 95, \ + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), \ + .catchRate = 3, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, \ + .evYield_Attack = 1, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Genesect"), \ + .cryId = CRY_GENESECT, \ + .natDexNum = NATIONAL_DEX_GENESECT, \ + .categoryName = _("Paleozoic"), \ + .height = 15, \ + .weight = 825, \ + .description = gGenesectPokedexText, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Genesect, \ + .frontPicSize = MON_COORDS_SIZE(56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Genesect, \ + .frontAnimId = ANIM_H_VIBRATE, \ + .backPic = gMonBackPic_Genesect, \ + .backPicSize = MON_COORDS_SIZE(64, 48), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ + .palette = gMonPalette_##form, \ + .shinyPalette = gMonShinyPalette_##form, \ + .iconSprite = gMonIcon_Genesect, \ + .iconPalIndex = 2, \ + FOOTPRINT(Genesect) \ + .levelUpLearnset = sGenesectLevelUpLearnset, \ + .teachableLearnset = sGenesectTeachableLearnset, \ + .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ + .formChangeTable = sGenesectFormChangeTable, \ + .isMythical = TRUE, \ } [SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect), diff --git a/src/data/pokemon/species_info/gen_6.h b/src/data/pokemon/species_info/gen_6_families.h similarity index 56% rename from src/data/pokemon/species_info/gen_6.h rename to src/data/pokemon/species_info/gen_6_families.h index 93261648d..ce1f1da22 100644 --- a/src/data/pokemon/species_info/gen_6.h +++ b/src/data/pokemon/species_info/gen_6_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 38, .baseSpAttack = 48, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 63, .evYield_Defense = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chespin"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chespin, 40, 48), + .frontPic = gMonFrontPic_Chespin, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chespin, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Chespin, 56, 64), + .backPic = gMonBackPic_Chespin, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Chespin), - ICON(Chespin, 1), - .footprint = gMonFootprint_Chespin, - LEARNSETS(Chespin), + .palette = gMonPalette_Chespin, + .shinyPalette = gMonShinyPalette_Chespin, + .iconSprite = gMonIcon_Chespin, + .iconPalIndex = 1, + FOOTPRINT(Chespin) + .levelUpLearnset = sChespinLevelUpLearnset, + .teachableLearnset = sChespinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUILLADIN}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 57, .baseSpAttack = 56, .baseSpDefense = 58, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 142, .evYield_Defense = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Quilladin"), @@ -86,17 +91,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quilladin, 48, 48), + .frontPic = gMonFrontPic_Quilladin, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Quilladin, .frontAnimId = ANIM_LUNGE_GROW, - BACK_PIC(Quilladin, 64, 48), + .backPic = gMonBackPic_Quilladin, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW, - PALETTES(Quilladin), - ICON(Quilladin, 1), - .footprint = gMonFootprint_Quilladin, - LEARNSETS(Quilladin), + .palette = gMonPalette_Quilladin, + .shinyPalette = gMonShinyPalette_Quilladin, + .iconSprite = gMonIcon_Quilladin, + .iconPalIndex = 1, + FOOTPRINT(Quilladin) + .levelUpLearnset = sQuilladinLevelUpLearnset, + .teachableLearnset = sQuilladinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHESNAUGHT}), }, @@ -108,15 +118,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 64, .baseSpAttack = 74, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_Defense = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chesnaught"), @@ -134,17 +144,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Chesnaught, 64, 64), + .frontPic = gMonFrontPic_Chesnaught, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Chesnaught, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Chesnaught, 64, 56), + .backPic = gMonBackPic_Chesnaught, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Chesnaught), - ICON(Chesnaught, 1), - .footprint = gMonFootprint_Chesnaught, - LEARNSETS(Chesnaught), + .palette = gMonPalette_Chesnaught, + .shinyPalette = gMonShinyPalette_Chesnaught, + .iconSprite = gMonIcon_Chesnaught, + .iconPalIndex = 1, + FOOTPRINT(Chesnaught) + .levelUpLearnset = sChesnaughtLevelUpLearnset, + .teachableLearnset = sChesnaughtTeachableLearnset, }, #endif //P_FAMILY_CHESPIN @@ -157,7 +172,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 60, .baseSpAttack = 62, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 61, .evYield_SpAttack = 1, @@ -165,7 +180,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fennekin"), @@ -183,17 +198,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fennekin, 40, 48), + .frontPic = gMonFrontPic_Fennekin, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Fennekin, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fennekin, 56, 48), + .backPic = gMonBackPic_Fennekin, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Fennekin), - ICON(Fennekin, 0), - .footprint = gMonFootprint_Fennekin, - LEARNSETS(Fennekin), + .palette = gMonPalette_Fennekin, + .shinyPalette = gMonShinyPalette_Fennekin, + .iconSprite = gMonIcon_Fennekin, + .iconPalIndex = 0, + FOOTPRINT(Fennekin) + .levelUpLearnset = sFennekinLevelUpLearnset, + .teachableLearnset = sFennekinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BRAIXEN}), }, @@ -205,7 +225,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 73, .baseSpAttack = 90, .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 143, .evYield_SpAttack = 2, @@ -213,7 +233,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Braixen"), @@ -231,17 +251,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Braixen, 48, 64), + .frontPic = gMonFrontPic_Braixen, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Braixen, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Braixen, 64, 56), + .backPic = gMonBackPic_Braixen, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Braixen), - ICON(Braixen, 0), - .footprint = gMonFootprint_Braixen, - LEARNSETS(Braixen), + .palette = gMonPalette_Braixen, + .shinyPalette = gMonShinyPalette_Braixen, + .iconSprite = gMonIcon_Braixen, + .iconPalIndex = 0, + FOOTPRINT(Braixen) + .levelUpLearnset = sBraixenLevelUpLearnset, + .teachableLearnset = sBraixenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_DELPHOX}), }, @@ -253,15 +278,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 104, .baseSpAttack = 114, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 240, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 267 : 240, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Delphox"), @@ -279,17 +304,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Delphox, 64, 64), + .frontPic = gMonFrontPic_Delphox, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Delphox, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Delphox, 64, 64), + .backPic = gMonBackPic_Delphox, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Delphox), - ICON(Delphox, 0), - .footprint = gMonFootprint_Delphox, - LEARNSETS(Delphox), + .palette = gMonPalette_Delphox, + .shinyPalette = gMonShinyPalette_Delphox, + .iconSprite = gMonIcon_Delphox, + .iconPalIndex = 0, + FOOTPRINT(Delphox) + .levelUpLearnset = sDelphoxLevelUpLearnset, + .teachableLearnset = sDelphoxTeachableLearnset, }, #endif //P_FAMILY_FENNEKIN @@ -302,7 +332,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 71, .baseSpAttack = 62, .baseSpDefense = 44, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 63, .evYield_Speed = 1, @@ -310,7 +340,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Froakie"), @@ -328,17 +358,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Froakie, 40, 40), + .frontPic = gMonFrontPic_Froakie, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Froakie, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Froakie, 56, 56), + .backPic = gMonBackPic_Froakie, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Froakie), - ICON(Froakie, 0), - .footprint = gMonFootprint_Froakie, - LEARNSETS(Froakie), + .palette = gMonPalette_Froakie, + .shinyPalette = gMonShinyPalette_Froakie, + .iconSprite = gMonIcon_Froakie, + .iconPalIndex = 0, + FOOTPRINT(Froakie) + .levelUpLearnset = sFroakieLevelUpLearnset, + .teachableLearnset = sFroakieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FROGADIER}), }, @@ -350,7 +385,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 97, .baseSpAttack = 83, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 142, .evYield_Speed = 2, @@ -358,7 +393,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Frogadier"), @@ -376,110 +411,178 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frogadier, 56, 48), + .frontPic = gMonFrontPic_Frogadier, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Frogadier, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Frogadier, 64, 56), + .backPic = gMonBackPic_Frogadier, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Frogadier), - ICON(Frogadier, 0), - .footprint = gMonFootprint_Frogadier, - LEARNSETS(Frogadier), + .palette = gMonPalette_Frogadier, + .shinyPalette = gMonShinyPalette_Frogadier, + .iconSprite = gMonIcon_Frogadier, + .iconPalIndex = 0, + FOOTPRINT(Frogadier) + .levelUpLearnset = sFrogadierLevelUpLearnset, + .teachableLearnset = sFrogadierTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GRENINJA}), }, -#define GRENINJA_NORMAL_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 95, \ - .baseDefense = 67, \ - .baseSpeed = 122, \ - .baseSpAttack = 103, \ - .baseSpDefense = 71, \ - .expYield = 239, \ - .description = gGreninjaPokedexText,\ - FRONT_PIC(Greninja, 64, 56), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Greninja, \ - BACK_PIC(Greninja, 64, 48), \ - .backPicYOffset = 11, \ - PALETTES(Greninja), \ - ICON(Greninja, 0) - -#define GRENINJA_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DARK }, \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = TRUE, \ - .speciesName = _("Greninja"), \ - .cryId = CRY_GRENINJA, \ - .natDexNum = NATIONAL_DEX_GRENINJA, \ - .categoryName = _("Ninja"), \ - .height = 15, \ - .weight = 400, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Greninja, \ - LEARNSETS(Greninja), \ - .formSpeciesIdTable = sGreninjaFormSpeciesIdTable - [SPECIES_GRENINJA] = { - GRENINJA_MISC_INFO, - GRENINJA_NORMAL_MISC_INFO, + .baseHP = 72, + .baseAttack = 95, + .baseDefense = 67, + .baseSpeed = 122, + .baseSpAttack = 103, + .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(12.5), - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, + .description = gGreninjaPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Greninja, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Greninja, .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Greninja, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 11, .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Greninja, + .shinyPalette = gMonShinyPalette_Greninja, + .iconSprite = gMonIcon_Greninja, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, }, [SPECIES_GRENINJA_BATTLE_BOND] = { - GRENINJA_MISC_INFO, - GRENINJA_NORMAL_MISC_INFO, + .baseHP = 72, + .baseAttack = 95, + .baseDefense = 67, + .baseSpeed = 122, + .baseSpAttack = 103, + .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Speed = 3, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, - .frontAnimId = ANIM_FLICKER_INCREASING, - .backAnimId = BACK_ANIM_V_STRETCH, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, + .description = gGreninjaPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Greninja, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Greninja, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Greninja, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Greninja, + .shinyPalette = gMonShinyPalette_Greninja, + .iconSprite = gMonIcon_Greninja, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, .formChangeTable = sGreninjaBattleBondFormChangeTable, }, [SPECIES_GRENINJA_ASH] = { - GRENINJA_MISC_INFO, .baseHP = 72, .baseAttack = 145, .baseDefense = 67, .baseSpeed = 132, .baseSpAttack = 153, .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, .expYield = 288, + .evYield_Speed = 3, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, .description = COMPOUND_STRING( "It appears and vanishes with a ninja's\n" "grace. It toys with its enemies using swift\n" "movements, while slicing them with throwing\n" "stars made of compressed water."), - FRONT_PIC(GreninjaAsh, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GreninjaAsh, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GreninjaAsh, - BACK_PIC(GreninjaAsh, 64, 48), + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_GreninjaAsh, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, - PALETTES(GreninjaAsh), - ICON(GreninjaAsh, 0), - .frontAnimId = ANIM_FLICKER_INCREASING, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_GreninjaAsh, + .shinyPalette = gMonShinyPalette_GreninjaAsh, + .iconSprite = gMonIcon_GreninjaAsh, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, .formChangeTable = sGreninjaBattleBondFormChangeTable, }, #endif //P_FAMILY_FROAKIE @@ -493,7 +596,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 57, .baseSpAttack = 32, .baseSpDefense = 36, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 47, .evYield_Speed = 1, @@ -501,7 +604,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bunnelby"), @@ -519,17 +622,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bunnelby, 48, 64), + .frontPic = gMonFrontPic_Bunnelby, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Bunnelby, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Bunnelby, 48, 64), + .backPic = gMonBackPic_Bunnelby, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Bunnelby), - ICON(Bunnelby, 2), - .footprint = gMonFootprint_Bunnelby, - LEARNSETS(Bunnelby), + .palette = gMonPalette_Bunnelby, + .shinyPalette = gMonShinyPalette_Bunnelby, + .iconSprite = gMonIcon_Bunnelby, + .iconPalIndex = 2, + FOOTPRINT(Bunnelby) + .levelUpLearnset = sBunnelbyLevelUpLearnset, + .teachableLearnset = sBunnelbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_DIGGERSBY}), }, @@ -541,7 +649,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 78, .baseSpAttack = 50, .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_GROUND }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GROUND), .catchRate = 127, .expYield = 148, .evYield_HP = 2, @@ -549,7 +657,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Diggersby"), @@ -567,17 +675,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Diggersby, 64, 64), + .frontPic = gMonFrontPic_Diggersby, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Diggersby, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Diggersby, 64, 64), + .backPic = gMonBackPic_Diggersby, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Diggersby), - ICON(Diggersby, 2), - .footprint = gMonFootprint_Diggersby, - LEARNSETS(Diggersby), + .palette = gMonPalette_Diggersby, + .shinyPalette = gMonShinyPalette_Diggersby, + .iconSprite = gMonIcon_Diggersby, + .iconPalIndex = 2, + FOOTPRINT(Diggersby) + .levelUpLearnset = sDiggersbyLevelUpLearnset, + .teachableLearnset = sDiggersbyTeachableLearnset, }, #endif //P_FAMILY_BUNNELBY @@ -590,7 +703,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 62, .baseSpAttack = 40, .baseSpDefense = 38, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -598,7 +711,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fletchling"), @@ -616,17 +729,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fletchling, 40, 40), + .frontPic = gMonFrontPic_Fletchling, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Fletchling, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Fletchling, 64, 40), + .backPic = gMonBackPic_Fletchling, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Fletchling), - ICON(Fletchling, 2), - .footprint = gMonFootprint_Fletchling, - LEARNSETS(Fletchling), + .palette = gMonPalette_Fletchling, + .shinyPalette = gMonShinyPalette_Fletchling, + .iconSprite = gMonIcon_Fletchling, + .iconPalIndex = 2, + FOOTPRINT(Fletchling) + .levelUpLearnset = sFletchlingLevelUpLearnset, + .teachableLearnset = sFletchlingTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_FLETCHINDER}), }, @@ -638,7 +756,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 84, .baseSpAttack = 56, .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 120, .expYield = 134, .evYield_Speed = 2, @@ -646,7 +764,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Flechinder"), @@ -664,18 +782,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fletchinder, 56, 48), + .frontPic = gMonFrontPic_Fletchinder, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Fletchinder, .frontAnimId = ANIM_V_SLIDE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Fletchinder, 64, 48), + .backPic = gMonBackPic_Fletchinder, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Fletchinder), - ICON(Fletchinder, 2), - .footprint = gMonFootprint_Fletchinder, - LEARNSETS(Fletchinder), + .palette = gMonPalette_Fletchinder, + .shinyPalette = gMonShinyPalette_Fletchinder, + .iconSprite = gMonIcon_Fletchinder, + .iconPalIndex = 2, + FOOTPRINT(Fletchinder) + .levelUpLearnset = sFletchinderLevelUpLearnset, + .teachableLearnset = sFletchinderTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_TALONFLAME}), }, @@ -687,7 +810,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 126, .baseSpAttack = 74, .baseSpDefense = 69, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 45, .expYield = 175, .evYield_Speed = 3, @@ -695,7 +818,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Talonflame"), @@ -713,117 +836,170 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Talonflame, 64, 64), + .frontPic = gMonFrontPic_Talonflame, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Talonflame, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Talonflame, 64, 56), + .backPic = gMonBackPic_Talonflame, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Talonflame), - ICON(Talonflame, 2), - .footprint = gMonFootprint_Talonflame, - LEARNSETS(Talonflame), + .palette = gMonPalette_Talonflame, + .shinyPalette = gMonShinyPalette_Talonflame, + .iconSprite = gMonIcon_Talonflame, + .iconPalIndex = 2, + FOOTPRINT(Talonflame) + .levelUpLearnset = sTalonflameLevelUpLearnset, + .teachableLearnset = sTalonflameTeachableLearnset, }, #endif //P_FAMILY_FLETCHLING #if P_FAMILY_SCATTERBUG - [SPECIES_SCATTERBUG] = - { - .baseHP = 38, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 27, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 255, - .expYield = 40, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, - .bodyColor = BODY_COLOR_BLACK, - .speciesName = _("Scatterbug"), - .cryId = CRY_SCATTERBUG, - .natDexNum = NATIONAL_DEX_SCATTERBUG, - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 25, - .description = COMPOUND_STRING( - "When under attack from bird Pokémon,\n" - "it spews a poisonous black powder that\n" - "causes paralysis on contact. Scatterbug\n" - "can live in any region or climate."), - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - FRONT_PIC(Scatterbug, 32, 48), - .frontPicYOffset = 13, - .frontAnimFrames = sAnims_Scatterbug, - .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Scatterbug, 40, 56), - .backPicYOffset = 12, - .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Scatterbug), - ICON(Scatterbug, 1), - .footprint = gMonFootprint_Scatterbug, - LEARNSETS(Scatterbug), - .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA}), - }, +#define SCATTERBUG_SPECIES_INFO(evolution) \ + { \ + .baseHP = 38, \ + .baseAttack = 35, \ + .baseDefense = 40, \ + .baseSpeed = 35, \ + .baseSpAttack = 27, \ + .baseSpDefense = 25, \ + .types = MON_TYPES(TYPE_BUG), \ + .catchRate = 255, \ + .expYield = 40, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Scatterbug"), \ + .cryId = CRY_SCATTERBUG, \ + .natDexNum = NATIONAL_DEX_SCATTERBUG, \ + .categoryName = _("Scatterdust"), \ + .height = 3, \ + .weight = 25, \ + .description = gScatterbugPokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Scatterbug, \ + .frontPicSize = MON_COORDS_SIZE(32, 48), \ + .frontPicYOffset = 13, \ + .frontAnimFrames = sAnims_Scatterbug, \ + .frontAnimId = ANIM_V_STRETCH, \ + .backPic = gMonBackPic_Scatterbug, \ + .backPicSize = MON_COORDS_SIZE(40, 56), \ + .backPicYOffset = 12, \ + .backAnimId = BACK_ANIM_H_SLIDE, \ + .palette = gMonPalette_Scatterbug, \ + .shinyPalette = gMonShinyPalette_Scatterbug, \ + .iconSprite = gMonIcon_Scatterbug, \ + .iconPalIndex = 1, \ + FOOTPRINT(Scatterbug) \ + .tmIlliterate = TRUE, \ + .levelUpLearnset = sScatterbugLevelUpLearnset, \ + .teachableLearnset = sScatterbugTeachableLearnset, \ + .formSpeciesIdTable = sScatterbugFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA_##evolution}), \ + } \ - [SPECIES_SPEWPA] = - { - .baseHP = 45, - .baseAttack = 22, - .baseDefense = 60, - .baseSpeed = 29, - .baseSpAttack = 27, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 120, - .expYield = 75, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD }, - .bodyColor = BODY_COLOR_BLACK, - .speciesName = _("Spewpa"), - .cryId = CRY_SPEWPA, - .natDexNum = NATIONAL_DEX_SPEWPA, - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 84, - .description = COMPOUND_STRING( - "It lives hidden within thicket shadows.\n" - "When predators attack, it quickly bristles\n" - "the fur covering its body in an effort to\n" - "threaten them."), - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - FRONT_PIC(Spewpa, 40, 48), - .frontPicYOffset = 11, - .frontAnimFrames = sAnims_Spewpa, - .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Spewpa, 48, 48), - .backPicYOffset = 12, - .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Spewpa), - ICON(Spewpa, 1), - .footprint = gMonFootprint_Spewpa, - LEARNSETS(Spewpa), - .evolutions = EVOLUTION({EVO_LEVEL, 12, SPECIES_VIVILLON_ICY_SNOW}), - }, + [SPECIES_SCATTERBUG_ICY_SNOW] = SCATTERBUG_SPECIES_INFO(ICY_SNOW), + [SPECIES_SCATTERBUG_POLAR] = SCATTERBUG_SPECIES_INFO(POLAR), + [SPECIES_SCATTERBUG_TUNDRA] = SCATTERBUG_SPECIES_INFO(TUNDRA), + [SPECIES_SCATTERBUG_CONTINENTAL] = SCATTERBUG_SPECIES_INFO(CONTINENTAL), + [SPECIES_SCATTERBUG_GARDEN] = SCATTERBUG_SPECIES_INFO(GARDEN), + [SPECIES_SCATTERBUG_ELEGANT] = SCATTERBUG_SPECIES_INFO(ELEGANT), + [SPECIES_SCATTERBUG_MEADOW] = SCATTERBUG_SPECIES_INFO(MEADOW), + [SPECIES_SCATTERBUG_MODERN] = SCATTERBUG_SPECIES_INFO(MODERN), + [SPECIES_SCATTERBUG_MARINE] = SCATTERBUG_SPECIES_INFO(MARINE), + [SPECIES_SCATTERBUG_ARCHIPELAGO] = SCATTERBUG_SPECIES_INFO(ARCHIPELAGO), + [SPECIES_SCATTERBUG_HIGH_PLAINS] = SCATTERBUG_SPECIES_INFO(HIGH_PLAINS), + [SPECIES_SCATTERBUG_SANDSTORM] = SCATTERBUG_SPECIES_INFO(SANDSTORM), + [SPECIES_SCATTERBUG_RIVER] = SCATTERBUG_SPECIES_INFO(RIVER), + [SPECIES_SCATTERBUG_MONSOON] = SCATTERBUG_SPECIES_INFO(MONSOON), + [SPECIES_SCATTERBUG_SAVANNA] = SCATTERBUG_SPECIES_INFO(SAVANNA), + [SPECIES_SCATTERBUG_SUN] = SCATTERBUG_SPECIES_INFO(SUN), + [SPECIES_SCATTERBUG_OCEAN] = SCATTERBUG_SPECIES_INFO(OCEAN), + [SPECIES_SCATTERBUG_JUNGLE] = SCATTERBUG_SPECIES_INFO(JUNGLE), + [SPECIES_SCATTERBUG_FANCY] = SCATTERBUG_SPECIES_INFO(FANCY), + [SPECIES_SCATTERBUG_POKE_BALL] = SCATTERBUG_SPECIES_INFO(POKE_BALL), + +#define SPEWPA_SPECIES_INFO(evolution) \ + { \ + .baseHP = 45, \ + .baseAttack = 22, \ + .baseDefense = 60, \ + .baseSpeed = 29, \ + .baseSpAttack = 27, \ + .baseSpDefense = 30, \ + .types = MON_TYPES(TYPE_BUG), \ + .catchRate = 120, \ + .expYield = 75, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Spewpa"), \ + .cryId = CRY_SPEWPA, \ + .natDexNum = NATIONAL_DEX_SPEWPA, \ + .categoryName = _("Scatterdust"), \ + .height = 3, \ + .weight = 84, \ + .description = gSpewpaPokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Spewpa, \ + .frontPicSize = MON_COORDS_SIZE(40, 48), \ + .frontPicYOffset = 11, \ + .frontAnimFrames = sAnims_Spewpa, \ + .frontAnimId = ANIM_V_SHAKE, \ + .backPic = gMonBackPic_Spewpa, \ + .backPicSize = MON_COORDS_SIZE(48, 48), \ + .backPicYOffset = 12, \ + .backAnimId = BACK_ANIM_H_VIBRATE, \ + .palette = gMonPalette_Spewpa, \ + .shinyPalette = gMonShinyPalette_Spewpa, \ + .iconSprite = gMonIcon_Spewpa, \ + .iconPalIndex = 1, \ + FOOTPRINT(Spewpa) \ + .tmIlliterate = TRUE, \ + .levelUpLearnset = sSpewpaLevelUpLearnset, \ + .teachableLearnset = sSpewpaTeachableLearnset, \ + .formSpeciesIdTable = sSpewpaFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_LEVEL, 12, SPECIES_VIVILLON_##evolution}), \ + } + + [SPECIES_SPEWPA_ICY_SNOW] = SPEWPA_SPECIES_INFO(ICY_SNOW), + [SPECIES_SPEWPA_POLAR] = SPEWPA_SPECIES_INFO(POLAR), + [SPECIES_SPEWPA_TUNDRA] = SPEWPA_SPECIES_INFO(TUNDRA), + [SPECIES_SPEWPA_CONTINENTAL] = SPEWPA_SPECIES_INFO(CONTINENTAL), + [SPECIES_SPEWPA_GARDEN] = SPEWPA_SPECIES_INFO(GARDEN), + [SPECIES_SPEWPA_ELEGANT] = SPEWPA_SPECIES_INFO(ELEGANT), + [SPECIES_SPEWPA_MEADOW] = SPEWPA_SPECIES_INFO(MEADOW), + [SPECIES_SPEWPA_MODERN] = SPEWPA_SPECIES_INFO(MODERN), + [SPECIES_SPEWPA_MARINE] = SPEWPA_SPECIES_INFO(MARINE), + [SPECIES_SPEWPA_ARCHIPELAGO] = SPEWPA_SPECIES_INFO(ARCHIPELAGO), + [SPECIES_SPEWPA_HIGH_PLAINS] = SPEWPA_SPECIES_INFO(HIGH_PLAINS), + [SPECIES_SPEWPA_SANDSTORM] = SPEWPA_SPECIES_INFO(SANDSTORM), + [SPECIES_SPEWPA_RIVER] = SPEWPA_SPECIES_INFO(RIVER), + [SPECIES_SPEWPA_MONSOON] = SPEWPA_SPECIES_INFO(MONSOON), + [SPECIES_SPEWPA_SAVANNA] = SPEWPA_SPECIES_INFO(SAVANNA), + [SPECIES_SPEWPA_SUN] = SPEWPA_SPECIES_INFO(SUN), + [SPECIES_SPEWPA_OCEAN] = SPEWPA_SPECIES_INFO(OCEAN), + [SPECIES_SPEWPA_JUNGLE] = SPEWPA_SPECIES_INFO(JUNGLE), + [SPECIES_SPEWPA_FANCY] = SPEWPA_SPECIES_INFO(FANCY), + [SPECIES_SPEWPA_POKE_BALL] = SPEWPA_SPECIES_INFO(POKE_BALL), #define VIVILLON_MISC_INFO(form, color, iconPal) \ .baseHP = 80, \ @@ -832,9 +1008,9 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 89, \ .baseSpAttack = 90, \ .baseSpDefense = 50, \ - .types = { TYPE_BUG, TYPE_FLYING }, \ + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), \ .catchRate = 45, \ - .expYield = 185, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 206 : 185, \ .evYield_HP = 1, \ .evYield_Speed = 1, \ .evYield_SpAttack = 1, \ @@ -842,7 +1018,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, \ .bodyColor = color, \ .speciesName = _("Vivillon"), \ @@ -855,18 +1031,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 4, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Vivillon ##form, 64, 64), \ + .frontPic = gMonFrontPic_Vivillon ##form, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Vivillon, \ .frontAnimId = ANIM_ZIGZAG_SLOW, \ .enemyMonElevation = 9, \ - BACK_PIC(Vivillon ##form, 64, 64), \ + .backPic = gMonBackPic_Vivillon ##form, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 0, \ .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ - PALETTES(Vivillon ##form), \ - ICON(Vivillon ##form, iconPal), \ - .footprint = gMonFootprint_Vivillon, \ - LEARNSETS(Vivillon), \ + .palette = gMonPalette_Vivillon ##form, \ + .shinyPalette = gMonShinyPalette_Vivillon ##form, \ + .iconSprite = gMonIcon_Vivillon ##form, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Vivillon) \ + .levelUpLearnset = sVivillonLevelUpLearnset, \ + .teachableLearnset = sVivillonTeachableLearnset, \ .formSpeciesIdTable = sVivillonFormSpeciesIdTable [SPECIES_VIVILLON_ICY_SNOW] = @@ -1060,7 +1241,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 72, .baseSpAttack = 73, .baseSpDefense = 54, - .types = { TYPE_FIRE, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_NORMAL), .catchRate = 220, .expYield = 74, .evYield_SpAttack = 1, @@ -1068,7 +1249,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Litleo"), @@ -1086,17 +1267,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litleo, 40, 48), + .frontPic = gMonFrontPic_Litleo, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Litleo, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Litleo, 56, 48), + .backPic = gMonBackPic_Litleo, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Litleo), - ICON(Litleo, 2), - .footprint = gMonFootprint_Litleo, - LEARNSETS(Litleo), + .palette = gMonPalette_Litleo, + .shinyPalette = gMonShinyPalette_Litleo, + .iconSprite = gMonIcon_Litleo, + .iconPalIndex = 2, + FOOTPRINT(Litleo) + .levelUpLearnset = sLitleoLevelUpLearnset, + .teachableLearnset = sLitleoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_PYROAR}), }, @@ -1108,7 +1294,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 106, .baseSpAttack = 109, .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_NORMAL), .catchRate = 65, .expYield = 177, .evYield_SpAttack = 2, @@ -1116,7 +1302,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pyroar"), @@ -1134,20 +1320,28 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Pyroar, 64, 64), - FRONT_PIC_FEMALE(Pyroar, 64, 64), + .frontPic = gMonFrontPic_Pyroar, + .frontPicFemale = gMonFrontPic_PyroarF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Pyroar, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Pyroar, 64, 64), - BACK_PIC_FEMALE(Pyroar, 64, 64), + .backPic = gMonBackPic_Pyroar, + .backPicFemale = gMonBackPic_PyroarF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Pyroar), - ICON(Pyroar, 2), - ICON_FEMALE(Pyroar, 2), - .footprint = gMonFootprint_Pyroar, - LEARNSETS(Pyroar), + .palette = gMonPalette_Pyroar, + .shinyPalette = gMonShinyPalette_Pyroar, + .iconSprite = gMonIcon_Pyroar, + .iconSpriteFemale = gMonIcon_PyroarF, + .iconPalIndex = 2, + .iconPalIndexFemale = 2, + FOOTPRINT(Pyroar) + .levelUpLearnset = sPyroarLevelUpLearnset, + .teachableLearnset = sPyroarTeachableLearnset, }, #endif //P_FAMILY_LITLEO @@ -1159,7 +1353,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 42, \ .baseSpAttack = 61, \ .baseSpDefense = 79, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 225, \ .expYield = 61, \ .evYield_SpDefense = 1, \ @@ -1167,7 +1361,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .abilities = { ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS }, \ .bodyColor = BODY_COLOR_WHITE, \ .speciesName = _("Flabébé"), \ @@ -1180,18 +1374,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Flabebe, 48, 56), \ + .frontPic = gMonFrontPic_Flabebe, \ + .frontPicSize = MON_COORDS_SIZE(48, 56), \ .frontPicYOffset = 6, \ .frontAnimFrames = sAnims_Flabebe, \ .frontAnimId = ANIM_H_SLIDE_SLOW, \ .enemyMonElevation = 6, \ - BACK_PIC(Flabebe, 64, 40), \ + .backPic = gMonBackPic_Flabebe, \ + .backPicSize = MON_COORDS_SIZE(64, 40), \ .backPicYOffset = 12, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - PALETTES(Flabebe##Form##Flower), \ - ICON(Flabebe##Form##Flower, iconPal), \ - .footprint = gMonFootprint_Flabebe, \ - LEARNSETS(Flabebe), \ + .palette = gMonPalette_Flabebe##Form##Flower, \ + .shinyPalette = gMonShinyPalette_Flabebe##Form##Flower, \ + .iconSprite = gMonIcon_Flabebe##Form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Flabebe) \ + .levelUpLearnset = sFlabebeLevelUpLearnset, \ + .teachableLearnset = sFlabebeTeachableLearnset, \ .formSpeciesIdTable = sFlabebeFormSpeciesIdTable, \ .evolutions = EVOLUTION({EVO_LEVEL, 19, SPECIES_FLOETTE_ ##FORM##_FLOWER}) @@ -1242,7 +1441,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = }, #define FLOETTE_MISC_INFO(form, FORM, iconPal) \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 120, \ .evYield_SpDefense = 2, \ .genderRatio = MON_FEMALE, \ @@ -1263,9 +1462,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .frontAnimFrames = sAnims_Floette, \ .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - PALETTES(Floette ##form##Flower), \ - ICON(Floette##form##Flower, iconPal), \ - .footprint = gMonFootprint_Floette, \ + .palette = gMonPalette_Floette ##form##Flower, \ + .shinyPalette = gMonShinyPalette_Floette ##form##Flower, \ + .iconSprite = gMonIcon_Floette##form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Floette) \ .formSpeciesIdTable = sFloetteFormSpeciesIdTable #define FLOETTE_NORMAL_INFO(form, FORM, iconPal) \ @@ -1276,14 +1477,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpAttack = 75, \ .baseSpDefense = 98, \ .expYield = 130, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .cryId = CRY_FLOETTE, \ - FRONT_PIC(Floette, 48, 64), \ + .frontPic = gMonFrontPic_Floette, \ + .frontPicSize = MON_COORDS_SIZE(48, 64), \ .frontPicYOffset = 3, \ .enemyMonElevation = 4, \ - BACK_PIC(Floette, 64, 64), \ + .backPic = gMonBackPic_Floette, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 2, \ - LEARNSETS(Floette), \ + .levelUpLearnset = sFloetteLevelUpLearnset, \ + .teachableLearnset = sFloetteTeachableLearnset, \ .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_ ##FORM##_FLOWER}),\ FLOETTE_MISC_INFO(form, FORM, iconPal) @@ -1342,19 +1546,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpAttack = 125, .baseSpDefense = 128, .expYield = 243, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .cryId = CRY_FLOETTE_ETERNAL_FLOWER, .description = COMPOUND_STRING( "The flower it's holding can no\n" "longer be found blooming anywhere. It's\n" "also thought to contain terrifying\n" "power."), - .cryId = CRY_FLOETTE_ETERNAL_FLOWER, - FRONT_PIC(FloetteEternalFlower, 64, 64), + .frontPic = gMonFrontPic_FloetteEternalFlower, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .enemyMonElevation = 4, - BACK_PIC(FloetteEternalFlower, 64, 64), + .backPic = gMonBackPic_FloetteEternalFlower, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, - LEARNSETS(FloetteEternalFlower), + .levelUpLearnset = sFloetteEternalFlowerLevelUpLearnset, + .teachableLearnset = sFloetteEternalFlowerTeachableLearnset, }, #define FLORGES_MISC_INFO(Form, iconPal) \ @@ -1364,15 +1571,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 75, \ .baseSpAttack = 112, \ .baseSpDefense = 154, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 45, \ - .expYield = 248, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 276 : 248, \ .evYield_SpDefense = 3, \ .genderRatio = MON_FEMALE, \ .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .abilities = { ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS }, \ .bodyColor = BODY_COLOR_WHITE, \ .speciesName = _("Florges"), \ @@ -1385,17 +1592,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Florges, 64, 64), \ + .frontPic = gMonFrontPic_Florges, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Florges, \ .frontAnimId = ANIM_V_SLIDE_SLOW, \ - BACK_PIC(Florges, 64, 48), \ + .backPic = gMonBackPic_Florges, \ + .backPicSize = MON_COORDS_SIZE(64, 48), \ .backPicYOffset = 9, \ .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - PALETTES(Florges##Form##Flower), \ - ICON(Florges##Form##Flower, iconPal), \ - .footprint = gMonFootprint_Florges, \ - LEARNSETS(Florges), \ + .palette = gMonPalette_Florges##Form##Flower, \ + .shinyPalette = gMonShinyPalette_Florges##Form##Flower, \ + .iconSprite = gMonIcon_Florges##Form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Florges) \ + .levelUpLearnset = sFlorgesLevelUpLearnset, \ + .teachableLearnset = sFlorgesTeachableLearnset, \ .formSpeciesIdTable = sFlorgesFormSpeciesIdTable [SPECIES_FLORGES_RED_FLOWER] = @@ -1453,7 +1665,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 52, .baseSpAttack = 62, .baseSpDefense = 57, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 200, .expYield = 70, .evYield_HP = 1, @@ -1461,7 +1673,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skiddo"), @@ -1479,17 +1691,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skiddo, 48, 56), + .frontPic = gMonFrontPic_Skiddo, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Skiddo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skiddo, 56, 48), + .backPic = gMonBackPic_Skiddo, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Skiddo), - ICON(Skiddo, 1), - .footprint = gMonFootprint_Skiddo, - LEARNSETS(Skiddo), + .palette = gMonPalette_Skiddo, + .shinyPalette = gMonShinyPalette_Skiddo, + .iconSprite = gMonIcon_Skiddo, + .iconPalIndex = 1, + FOOTPRINT(Skiddo) + .levelUpLearnset = sSkiddoLevelUpLearnset, + .teachableLearnset = sSkiddoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOGOAT}), }, @@ -1501,7 +1718,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 97, .baseSpDefense = 81, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 186, .evYield_HP = 2, @@ -1509,7 +1726,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Gogoat"), @@ -1527,17 +1744,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Gogoat, 56, 64), + .frontPic = gMonFrontPic_Gogoat, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gogoat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Gogoat, 64, 56), + .backPic = gMonBackPic_Gogoat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Gogoat), - ICON(Gogoat, 1), - .footprint = gMonFootprint_Gogoat, - LEARNSETS(Gogoat), + .palette = gMonPalette_Gogoat, + .shinyPalette = gMonShinyPalette_Gogoat, + .iconSprite = gMonIcon_Gogoat, + .iconPalIndex = 1, + FOOTPRINT(Gogoat) + .levelUpLearnset = sGogoatLevelUpLearnset, + .teachableLearnset = sGogoatTeachableLearnset, }, #endif //P_FAMILY_SKIDDO @@ -1550,7 +1772,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 43, .baseSpAttack = 46, .baseSpDefense = 48, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 220, .expYield = 70, .evYield_Attack = 1, @@ -1559,7 +1781,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pancham"), @@ -1577,17 +1799,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pancham, 32, 48), + .frontPic = gMonFrontPic_Pancham, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pancham, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Pancham, 48, 56), + .backPic = gMonBackPic_Pancham, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Pancham), - ICON(Pancham, 1), - .footprint = gMonFootprint_Pancham, - LEARNSETS(Pancham), + .palette = gMonPalette_Pancham, + .shinyPalette = gMonShinyPalette_Pancham, + .iconSprite = gMonIcon_Pancham, + .iconPalIndex = 1, + FOOTPRINT(Pancham) + .levelUpLearnset = sPanchamLevelUpLearnset, + .teachableLearnset = sPanchamTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DARK_TYPE_MON_IN_PARTY, 32, SPECIES_PANGORO}), }, @@ -1599,7 +1826,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 58, .baseSpAttack = 69, .baseSpDefense = 71, - .types = { TYPE_FIGHTING, TYPE_DARK }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), .catchRate = 65, .expYield = 173, .evYield_Attack = 2, @@ -1608,7 +1835,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pangoro"), @@ -1626,158 +1853,86 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Pangoro, 64, 64), + .frontPic = gMonFrontPic_Pangoro, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Pangoro, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Pangoro, 64, 56), + .backPic = gMonBackPic_Pangoro, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Pangoro), - ICON(Pangoro, 1), - .footprint = gMonFootprint_Pangoro, - LEARNSETS(Pangoro), + .palette = gMonPalette_Pangoro, + .shinyPalette = gMonShinyPalette_Pangoro, + .iconSprite = gMonIcon_Pangoro, + .iconPalIndex = 1, + FOOTPRINT(Pangoro) + .levelUpLearnset = sPangoroLevelUpLearnset, + .teachableLearnset = sPangoroTeachableLearnset, }, #endif //P_FAMILY_PANCHAM #if P_FAMILY_FURFROU -#define FURFROU_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 80, \ - .baseDefense = 60, \ - .baseSpeed = 102, \ - .baseSpAttack = 65, \ - .baseSpDefense = 90, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 160, \ - .expYield = 165, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_FUR_COAT, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Furfrou"), \ - .cryId = CRY_FURFROU, \ - .natDexNum = NATIONAL_DEX_FURFROU, \ - .categoryName = _("Poodle"), \ - .height = 12, \ - .weight = 280, \ - .description = gFurfrouPokedexText, \ - .pokemonScale = 282, \ - .pokemonOffset = 4, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Furfrou, \ - .frontAnimId = ANIM_H_SLIDE, \ - .backAnimId = BACK_ANIM_V_STRETCH, \ - .footprint = gMonFootprint_Furfrou, \ - LEARNSETS(Furfrou), \ - .formSpeciesIdTable = sFurfrouFormSpeciesIdTable +#define FURFROU_MISC_INFO(_form, _noFlip, frontWidth, frontYOffset, backWidth, backYOffset, _iconIdx) \ + { \ + .baseHP = 75, \ + .baseAttack = 80, \ + .baseDefense = 60, \ + .baseSpeed = 102, \ + .baseSpAttack = 65, \ + .baseSpDefense = 90, \ + .types = MON_TYPES(TYPE_NORMAL), \ + .catchRate = 160, \ + .expYield = 165, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), \ + .abilities = { ABILITY_FUR_COAT, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = _noFlip, \ + .speciesName = _("Furfrou"), \ + .cryId = CRY_FURFROU, \ + .natDexNum = NATIONAL_DEX_FURFROU, \ + .categoryName = _("Poodle"), \ + .height = 12, \ + .weight = 280, \ + .description = gFurfrouPokedexText, \ + .pokemonScale = 282, \ + .pokemonOffset = 4, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Furfrou##_form, \ + .frontPicSize = MON_COORDS_SIZE(frontWidth, 64), \ + .frontPicYOffset = frontYOffset, \ + .frontAnimFrames = sAnims_Furfrou, \ + .frontAnimId = ANIM_H_SLIDE, \ + .backPic = gMonBackPic_Furfrou##_form, \ + .backPicSize = MON_COORDS_SIZE(backWidth, 64), \ + .backPicYOffset = backYOffset, \ + .backAnimId = BACK_ANIM_V_STRETCH, \ + .palette = gMonPalette_Furfrou##_form, \ + .shinyPalette = gMonShinyPalette_Furfrou##_form, \ + .iconSprite = gMonIcon_Furfrou##_form, \ + .iconPalIndex = _iconIdx, \ + FOOTPRINT(Furfrou) \ + .levelUpLearnset = sFurfrouLevelUpLearnset, \ + .teachableLearnset = sFurfrouTeachableLearnset, \ + .formSpeciesIdTable = sFurfrouFormSpeciesIdTable, \ + } - [SPECIES_FURFROU_NATURAL] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouNatural, 48, 64), - .frontPicYOffset = 3, - BACK_PIC(FurfrouNatural, 56, 64), - .backPicYOffset = 0, - PALETTES(FurfrouNatural), - ICON(FurfrouNatural, 0), - }, - [SPECIES_FURFROU_HEART_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouHeartTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouHeartTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouHeartTrim), - ICON(FurfrouHeartTrim, 0), - }, - [SPECIES_FURFROU_STAR_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouStarTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouStarTrim, 64, 64), - .backPicYOffset = 1, - PALETTES(FurfrouStarTrim), - ICON(FurfrouStarTrim, 0), - }, - [SPECIES_FURFROU_DIAMOND_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouDiamondTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDiamondTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDiamondTrim), - ICON(FurfrouDiamondTrim, 0), - }, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = - { - FURFROU_MISC_INFO, - .noFlip = TRUE, - FRONT_PIC(FurfrouDebutanteTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDebutanteTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDebutanteTrim), - ICON(FurfrouDebutanteTrim, 2), - }, - [SPECIES_FURFROU_MATRON_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouMatronTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouMatronTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouMatronTrim), - ICON(FurfrouMatronTrim, 2), - }, - [SPECIES_FURFROU_DANDY_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouDandyTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDandyTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDandyTrim), - ICON(FurfrouDandyTrim, 1), - }, - [SPECIES_FURFROU_LA_REINE_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouLaReineTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouLaReineTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouLaReineTrim), - ICON(FurfrouLaReineTrim, 0), - }, - [SPECIES_FURFROU_KABUKI_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouKabukiTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouKabukiTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouKabukiTrim), - ICON(FurfrouKabukiTrim, 0), - }, - [SPECIES_FURFROU_PHARAOH_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouPharaohTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouPharaohTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouPharaohTrim), - ICON(FurfrouPharaohTrim, 0), - }, + [SPECIES_FURFROU_NATURAL] = FURFROU_MISC_INFO(Natural, FALSE, 48, 3, 56, 0, 0), + [SPECIES_FURFROU_HEART_TRIM] = FURFROU_MISC_INFO(HeartTrim, FALSE, 56, 2, 56, 1, 0), + [SPECIES_FURFROU_STAR_TRIM] = FURFROU_MISC_INFO(StarTrim, FALSE, 56, 2, 64, 1, 0), + [SPECIES_FURFROU_DIAMOND_TRIM] = FURFROU_MISC_INFO(DiamondTrim, FALSE, 48, 2, 56, 1, 0), + [SPECIES_FURFROU_DEBUTANTE_TRIM] = FURFROU_MISC_INFO(DebutanteTrim, TRUE, 48, 2, 56, 1, 2), + [SPECIES_FURFROU_MATRON_TRIM] = FURFROU_MISC_INFO(MatronTrim, FALSE, 48, 2, 56, 1, 2), + [SPECIES_FURFROU_DANDY_TRIM] = FURFROU_MISC_INFO(DandyTrim, FALSE, 48, 2, 56, 1, 1), + [SPECIES_FURFROU_LA_REINE_TRIM] = FURFROU_MISC_INFO(LaReineTrim, FALSE, 48, 2, 56, 1, 0), + [SPECIES_FURFROU_KABUKI_TRIM] = FURFROU_MISC_INFO(KabukiTrim, FALSE, 56, 2, 56, 1, 0), + [SPECIES_FURFROU_PHARAOH_TRIM] = FURFROU_MISC_INFO(PharaohTrim, FALSE, 48, 2, 56, 1, 0), #endif //P_FAMILY_FURFROU #if P_FAMILY_ESPURR @@ -1789,7 +1944,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 63, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, .expYield = 71, .evYield_Speed = 1, @@ -1797,7 +1952,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Espurr"), @@ -1815,89 +1970,130 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espurr, 32, 48), + .frontPic = gMonFrontPic_Espurr, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Espurr, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Espurr, 56, 56), + .backPic = gMonBackPic_Espurr, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Espurr), - ICON(Espurr, 2), - .footprint = gMonFootprint_Espurr, - LEARNSETS(Espurr), + .palette = gMonPalette_Espurr, + .shinyPalette = gMonShinyPalette_Espurr, + .iconSprite = gMonIcon_Espurr, + .iconPalIndex = 2, + FOOTPRINT(Espurr) + .levelUpLearnset = sEspurrLevelUpLearnset, + .teachableLearnset = sEspurrTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_MALE, 25, SPECIES_MEOWSTIC_MALE}, {EVO_LEVEL_FEMALE, 25, SPECIES_MEOWSTIC_FEMALE}), }, -#define MEOWSTIC_MISC_INFO \ - .baseHP = 74, \ - .baseAttack = 48, \ - .baseDefense = 76, \ - .baseSpeed = 104, \ - .baseSpAttack = 83, \ - .baseSpDefense = 81, \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 75, \ - .expYield = 163, \ - .evYield_Speed = 2, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Meowstic"), \ - .cryId = CRY_MEOWSTIC, \ - .natDexNum = NATIONAL_DEX_MEOWSTIC, \ - .categoryName = _("Constraint"), \ - .height = 6, \ - .weight = 85, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Meowstic, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - .backPicYOffset = 9, \ - .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, \ - .footprint = gMonFootprint_Meowstic, \ - .formSpeciesIdTable = sMeowsticFormSpeciesIdTable - [SPECIES_MEOWSTIC_MALE] = { - MEOWSTIC_MISC_INFO, + .baseHP = 74, + .baseAttack = 48, + .baseDefense = 76, + .baseSpeed = 104, + .baseSpAttack = 83, + .baseSpDefense = 81, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 75, + .expYield = 163, + .evYield_Speed = 2, .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Meowstic"), + .cryId = CRY_MEOWSTIC, + .natDexNum = NATIONAL_DEX_MEOWSTIC, + .categoryName = _("Constraint"), + .height = 6, + .weight = 85, .description = COMPOUND_STRING( "The defensive instinct of the\n" "males is strong. It's when they're\n" "protecting themselves or their partners\n" "that they unleash their full power."), - FRONT_PIC(MeowsticMale, 48, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeowsticMale, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, - BACK_PIC(MeowsticMale, 64, 64), - PALETTES(MeowsticMale), - ICON(MeowsticMale, 0), - LEARNSETS(MeowsticMale), + .frontAnimFrames = sAnims_Meowstic, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_MeowsticMale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + .palette = gMonPalette_MeowsticMale, + .shinyPalette = gMonShinyPalette_MeowsticMale, + .iconSprite = gMonIcon_MeowsticMale, + .iconPalIndex = 0, + FOOTPRINT(Meowstic) + .levelUpLearnset = sMeowsticMaleLevelUpLearnset, + .teachableLearnset = sMeowsticMaleTeachableLearnset, + .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, [SPECIES_MEOWSTIC_FEMALE] = { - MEOWSTIC_MISC_INFO, + .baseHP = 74, + .baseAttack = 48, + .baseDefense = 76, + .baseSpeed = 104, + .baseSpAttack = 83, + .baseSpDefense = 81, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 75, + .expYield = 163, + .evYield_Speed = 2, .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Meowstic"), + .cryId = CRY_MEOWSTIC, + .natDexNum = NATIONAL_DEX_MEOWSTIC, + .categoryName = _("Constraint"), + .height = 6, + .weight = 85, .description = COMPOUND_STRING( "Females are a bit more selfish and\n" "aggressive than males. If they\n" "don't get what they want, they will\n" "torment you with their psychic abilities."), - FRONT_PIC(MeowsticFemale, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeowsticFemale, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, - BACK_PIC(MeowsticFemale, 48, 64), - PALETTES(MeowsticFemale), - ICON(MeowsticFemale, 0), - LEARNSETS(MeowsticFemale), + .frontAnimFrames = sAnims_Meowstic, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_MeowsticFemale, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + .palette = gMonPalette_MeowsticFemale, + .shinyPalette = gMonShinyPalette_MeowsticFemale, + .iconSprite = gMonIcon_MeowsticFemale, + .iconPalIndex = 0, + FOOTPRINT(Meowstic) + .levelUpLearnset = sMeowsticFemaleLevelUpLearnset, + .teachableLearnset = sMeowsticFemaleTeachableLearnset, + .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, #endif //P_FAMILY_ESPURR @@ -1910,7 +2106,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 28, .baseSpAttack = 35, .baseSpDefense = 37, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 180, .expYield = 65, .evYield_Defense = 1, @@ -1918,8 +2114,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_NO_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_NO_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Honedge"), .cryId = CRY_HONEDGE, @@ -1936,18 +2132,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Honedge, 64, 56), + .frontPic = gMonFrontPic_Honedge, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Honedge, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 4, - BACK_PIC(Honedge, 48, 56), + .backPic = gMonBackPic_Honedge, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Honedge), - ICON(Honedge, 2), - .footprint = gMonFootprint_Honedge, - LEARNSETS(Honedge), + .palette = gMonPalette_Honedge, + .shinyPalette = gMonShinyPalette_Honedge, + .iconSprite = gMonIcon_Honedge, + .iconPalIndex = 2, + FOOTPRINT(Honedge) + .levelUpLearnset = sHonedgeLevelUpLearnset, + .teachableLearnset = sHonedgeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DOUBLADE}), }, @@ -1959,7 +2160,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 35, .baseSpAttack = 45, .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 90, .expYield = 157, .evYield_Defense = 2, @@ -1967,8 +2168,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_NO_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_NO_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Doublade"), .cryId = CRY_DOUBLADE, @@ -1985,103 +2186,143 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Doublade, 64, 64), + .frontPic = gMonFrontPic_Doublade, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Doublade, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(Doublade, 64, 64), + .backPic = gMonBackPic_Doublade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Doublade), - ICON(Doublade, 2), - .footprint = gMonFootprint_Doublade, - LEARNSETS(Doublade), + .palette = gMonPalette_Doublade, + .shinyPalette = gMonShinyPalette_Doublade, + .iconSprite = gMonIcon_Doublade, + .iconPalIndex = 2, + FOOTPRINT(Doublade) + .levelUpLearnset = sDoubladeLevelUpLearnset, + .teachableLearnset = sDoubladeTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_AEGISLASH_SHIELD}), }, -#define AEGISLASH_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 234, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Aegislash"), \ - .cryId = CRY_AEGISLASH, \ - .natDexNum = NATIONAL_DEX_AEGISLASH, \ - .categoryName = _("Royal Sword"), \ - .height = 17, \ - .weight = 530, \ - .pokemonScale = 259, \ - .pokemonOffset = 0, \ - .trainerScale = 290, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Aegislash, \ - LEARNSETS(Aegislash), \ - .formSpeciesIdTable = sAegislashFormSpeciesIdTable, \ - .formChangeTable = sAegislashFormChangeTable - #define AEGISLASH_MAIN_STAT (P_UPDATED_STATS >= GEN_8 ? 140 : 150) [SPECIES_AEGISLASH_SHIELD] = { - AEGISLASH_MISC_INFO, .baseHP = 60, .baseAttack = 50, .baseDefense = AEGISLASH_MAIN_STAT, .baseSpeed = 60, .baseSpAttack = 50, .baseSpDefense = AEGISLASH_MAIN_STAT, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 234, .evYield_Defense = 2, .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Aegislash"), + .cryId = CRY_AEGISLASH, + .natDexNum = NATIONAL_DEX_AEGISLASH, + .categoryName = _("Royal Sword"), + .height = 17, + .weight = 530, .description = COMPOUND_STRING( "In this defensive stance,\n" "Aegislash uses its steel body and a force\n" "field of spectral power to reduce the\n" "damage of any attack."), - FRONT_PIC(AegislashShield, 56, 64), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + .frontPic = gMonFrontPic_AegislashShield, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AegislashShield, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 3, - BACK_PIC(AegislashShield, 64, 64), + .backPic = gMonBackPic_AegislashShield, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(AegislashShield), - ICON(AegislashShield, 2), + .palette = gMonPalette_AegislashShield, + .shinyPalette = gMonShinyPalette_AegislashShield, + .iconSprite = gMonIcon_AegislashShield, + .iconPalIndex = 2, + FOOTPRINT(Aegislash) + .levelUpLearnset = sAegislashLevelUpLearnset, + .teachableLearnset = sAegislashTeachableLearnset, + .formSpeciesIdTable = sAegislashFormSpeciesIdTable, + .formChangeTable = sAegislashFormChangeTable, }, [SPECIES_AEGISLASH_BLADE] = { - AEGISLASH_MISC_INFO, .baseHP = 60, .baseAttack = AEGISLASH_MAIN_STAT, .baseDefense = 50, .baseSpeed = 60, .baseSpAttack = AEGISLASH_MAIN_STAT, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 234, + #if P_UPDATED_EVS >= GEN_7 .evYield_Attack = 2, .evYield_SpAttack = 1, + #else + .evYield_Defense = 2, + .evYield_SpDefense = 1, + #endif + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Aegislash"), + .cryId = CRY_AEGISLASH, + .natDexNum = NATIONAL_DEX_AEGISLASH, + .categoryName = _("Royal Sword"), + .height = 17, + .weight = 530, .description = COMPOUND_STRING( "Once upon a time, a king with an\n" "Aegislash reigned over the land. His\n" "Pokémon eventually drained him of\n" "life, and his kingdom fell with him."), - FRONT_PIC(AegislashBlade, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + .frontPic = gMonFrontPic_AegislashBlade, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AegislashBlade, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 3, - BACK_PIC(AegislashBlade, 64, 64), + .backPic = gMonBackPic_AegislashBlade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(AegislashBlade), - ICON(AegislashBlade, 2), + .palette = gMonPalette_AegislashBlade, + .shinyPalette = gMonShinyPalette_AegislashBlade, + .iconSprite = gMonIcon_AegislashBlade, + .iconPalIndex = 2, + FOOTPRINT(Aegislash) + .levelUpLearnset = sAegislashLevelUpLearnset, + .teachableLearnset = sAegislashTeachableLearnset, + .formSpeciesIdTable = sAegislashFormSpeciesIdTable, + .formChangeTable = sAegislashFormChangeTable, }, #endif //P_FAMILY_HONEDGE @@ -2094,7 +2335,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 23, .baseSpAttack = 63, .baseSpDefense = 65, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 68, .evYield_HP = 1, @@ -2102,7 +2343,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Spritzee"), @@ -2120,18 +2361,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spritzee, 48, 48), + .frontPic = gMonFrontPic_Spritzee, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Spritzee, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Spritzee, 56, 48), + .backPic = gMonBackPic_Spritzee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Spritzee), - ICON(Spritzee, 0), - .footprint = gMonFootprint_Spritzee, - LEARNSETS(Spritzee), + .palette = gMonPalette_Spritzee, + .shinyPalette = gMonShinyPalette_Spritzee, + .iconSprite = gMonIcon_Spritzee, + .iconPalIndex = 0, + FOOTPRINT(Spritzee) + .levelUpLearnset = sSpritzeeLevelUpLearnset, + .teachableLearnset = sSpritzeeTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}, {EVO_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}), }, @@ -2144,7 +2390,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 29, .baseSpAttack = 99, .baseSpDefense = 89, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 140, .expYield = 162, .evYield_HP = 2, @@ -2152,7 +2398,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Aromatisse"), @@ -2170,17 +2416,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Aromatisse, 48, 56), + .frontPic = gMonFrontPic_Aromatisse, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Aromatisse, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Aromatisse, 64, 64), + .backPic = gMonBackPic_Aromatisse, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Aromatisse), - ICON(Aromatisse, 0), - .footprint = gMonFootprint_Aromatisse, - LEARNSETS(Aromatisse), + .palette = gMonPalette_Aromatisse, + .shinyPalette = gMonShinyPalette_Aromatisse, + .iconSprite = gMonIcon_Aromatisse, + .iconPalIndex = 0, + FOOTPRINT(Aromatisse) + .levelUpLearnset = sAromatisseLevelUpLearnset, + .teachableLearnset = sAromatisseTeachableLearnset, }, #endif //P_FAMILY_SPRITZEE @@ -2193,7 +2444,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 49, .baseSpAttack = 59, .baseSpDefense = 57, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 68, .evYield_Defense = 1, @@ -2201,7 +2452,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Swirlix"), @@ -2219,17 +2470,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swirlix, 40, 40), + .frontPic = gMonFrontPic_Swirlix, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Swirlix, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Swirlix, 56, 40), + .backPic = gMonBackPic_Swirlix, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Swirlix), - ICON(Swirlix, 1), - .footprint = gMonFootprint_Swirlix, - LEARNSETS(Swirlix), + .palette = gMonPalette_Swirlix, + .shinyPalette = gMonShinyPalette_Swirlix, + .iconSprite = gMonIcon_Swirlix, + .iconPalIndex = 1, + FOOTPRINT(Swirlix) + .levelUpLearnset = sSwirlixLevelUpLearnset, + .teachableLearnset = sSwirlixTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}, {EVO_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}), }, @@ -2242,7 +2498,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 72, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 140, .expYield = 168, .evYield_Defense = 2, @@ -2250,7 +2506,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Slurpuff"), @@ -2268,17 +2524,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Slurpuff, 48, 56), + .frontPic = gMonFrontPic_Slurpuff, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Slurpuff, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Slurpuff, 64, 64), + .backPic = gMonBackPic_Slurpuff, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Slurpuff), - ICON(Slurpuff, 1), - .footprint = gMonFootprint_Slurpuff, - LEARNSETS(Slurpuff), + .palette = gMonPalette_Slurpuff, + .shinyPalette = gMonShinyPalette_Slurpuff, + .iconSprite = gMonIcon_Slurpuff, + .iconPalIndex = 1, + FOOTPRINT(Slurpuff) + .levelUpLearnset = sSlurpuffLevelUpLearnset, + .teachableLearnset = sSlurpuffTeachableLearnset, }, #endif //P_FAMILY_SWIRLIX @@ -2291,7 +2552,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 45, .baseSpAttack = 37, .baseSpDefense = 46, - .types = { TYPE_DARK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_DARK, TYPE_PSYCHIC), .catchRate = 190, .expYield = 58, .evYield_Attack = 1, @@ -2299,7 +2560,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Inkay"), @@ -2317,18 +2578,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Inkay, 48, 48), + .frontPic = gMonFrontPic_Inkay, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Inkay, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Inkay, 56, 64), + .backPic = gMonBackPic_Inkay, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Inkay), - ICON(Inkay, 0), - .footprint = gMonFootprint_Inkay, - LEARNSETS(Inkay), + .palette = gMonPalette_Inkay, + .shinyPalette = gMonShinyPalette_Inkay, + .iconSprite = gMonIcon_Inkay, + .iconPalIndex = 0, + FOOTPRINT(Inkay) + .levelUpLearnset = sInkayLevelUpLearnset, + .teachableLearnset = sInkayTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MALAMAR}), }, @@ -2340,7 +2606,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 73, .baseSpAttack = 68, .baseSpDefense = 75, - .types = { TYPE_DARK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_DARK, TYPE_PSYCHIC), .catchRate = 80, .expYield = 169, .evYield_Attack = 2, @@ -2348,7 +2614,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Malamar"), @@ -2366,17 +2632,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Malamar, 64, 64), + .frontPic = gMonFrontPic_Malamar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Malamar, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Malamar, 64, 56), + .backPic = gMonBackPic_Malamar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Malamar), - ICON(Malamar, 2), - .footprint = gMonFootprint_Malamar, - LEARNSETS(Malamar), + .palette = gMonPalette_Malamar, + .shinyPalette = gMonShinyPalette_Malamar, + .iconSprite = gMonIcon_Malamar, + .iconPalIndex = 2, + FOOTPRINT(Malamar) + .levelUpLearnset = sMalamarLevelUpLearnset, + .teachableLearnset = sMalamarTeachableLearnset, }, #endif //P_FAMILY_INKAY @@ -2389,7 +2660,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 50, .baseSpAttack = 39, .baseSpDefense = 56, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 120, .expYield = 61, .evYield_Attack = 1, @@ -2397,7 +2668,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Binacle"), @@ -2415,17 +2686,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Binacle, 48, 56), + .frontPic = gMonFrontPic_Binacle, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Binacle, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Binacle, 64, 64), + .backPic = gMonBackPic_Binacle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Binacle), - ICON(Binacle, 2), - .footprint = gMonFootprint_Binacle, - LEARNSETS(Binacle), + .palette = gMonPalette_Binacle, + .shinyPalette = gMonShinyPalette_Binacle, + .iconSprite = gMonIcon_Binacle, + .iconPalIndex = 2, + FOOTPRINT(Binacle) + .levelUpLearnset = sBinacleLevelUpLearnset, + .teachableLearnset = sBinacleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_BARBARACLE}), }, @@ -2437,7 +2713,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 54, .baseSpDefense = 86, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, .expYield = 175, .evYield_Attack = 2, @@ -2445,7 +2721,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -2464,17 +2740,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barbaracle, 64, 64), + .frontPic = gMonFrontPic_Barbaracle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Barbaracle, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Barbaracle, 64, 64), + .backPic = gMonBackPic_Barbaracle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Barbaracle), - ICON(Barbaracle, 2), - .footprint = gMonFootprint_Barbaracle, - LEARNSETS(Barbaracle), + .palette = gMonPalette_Barbaracle, + .shinyPalette = gMonShinyPalette_Barbaracle, + .iconSprite = gMonIcon_Barbaracle, + .iconPalIndex = 2, + FOOTPRINT(Barbaracle) + .levelUpLearnset = sBarbaracleLevelUpLearnset, + .teachableLearnset = sBarbaracleTeachableLearnset, }, #endif //P_FAMILY_BINACLE @@ -2487,7 +2768,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 225, .expYield = 64, .evYield_SpDefense = 1, @@ -2495,7 +2776,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skrelp"), @@ -2513,17 +2794,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skrelp, 40, 48), + .frontPic = gMonFrontPic_Skrelp, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Skrelp, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Skrelp, 64, 64), + .backPic = gMonBackPic_Skrelp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Skrelp), - ICON(Skrelp, 2), - .footprint = gMonFootprint_Skrelp, - LEARNSETS(Skrelp), + .palette = gMonPalette_Skrelp, + .shinyPalette = gMonShinyPalette_Skrelp, + .iconSprite = gMonIcon_Skrelp, + .iconPalIndex = 2, + FOOTPRINT(Skrelp) + .levelUpLearnset = sSkrelpLevelUpLearnset, + .teachableLearnset = sSkrelpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_DRAGALGE}), }, @@ -2535,7 +2821,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 44, .baseSpAttack = 97, .baseSpDefense = 123, - .types = { TYPE_POISON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), .catchRate = 55, .expYield = 173, .evYield_SpDefense = 2, @@ -2543,7 +2829,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dragalge"), @@ -2561,17 +2847,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Dragalge, 64, 64), + .frontPic = gMonFrontPic_Dragalge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dragalge, .frontAnimId = ANIM_FRONT_FLIP, - BACK_PIC(Dragalge, 64, 64), + .backPic = gMonBackPic_Dragalge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Dragalge), - ICON(Dragalge, 5), - .footprint = gMonFootprint_Dragalge, - LEARNSETS(Dragalge), + .palette = gMonPalette_Dragalge, + .shinyPalette = gMonShinyPalette_Dragalge, + .iconSprite = gMonIcon_Dragalge, + .iconPalIndex = 5, + FOOTPRINT(Dragalge) + .levelUpLearnset = sDragalgeLevelUpLearnset, + .teachableLearnset = sDragalgeTeachableLearnset, }, #endif //P_FAMILY_SKRELP @@ -2584,7 +2875,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 44, .baseSpAttack = 58, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, .expYield = 66, .evYield_SpAttack = 1, @@ -2592,8 +2883,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), + .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, .speciesName = _("Clauncher"), @@ -2611,17 +2902,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clauncher, 56, 40), + .frontPic = gMonFrontPic_Clauncher, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Clauncher, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Clauncher, 64, 48), + .backPic = gMonBackPic_Clauncher, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Clauncher), - ICON(Clauncher, 0), - .footprint = gMonFootprint_Clauncher, - LEARNSETS(Clauncher), + .palette = gMonPalette_Clauncher, + .shinyPalette = gMonShinyPalette_Clauncher, + .iconSprite = gMonIcon_Clauncher, + .iconPalIndex = 0, + FOOTPRINT(Clauncher) + .levelUpLearnset = sClauncherLevelUpLearnset, + .teachableLearnset = sClauncherTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CLAWITZER}), }, @@ -2633,7 +2929,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 59, .baseSpAttack = 120, .baseSpDefense = 89, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 55, .expYield = 100, .evYield_SpAttack = 2, @@ -2641,8 +2937,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), + .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, .speciesName = _("Clawitzer"), @@ -2660,17 +2956,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clawitzer, 64, 64), + .frontPic = gMonFrontPic_Clawitzer, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Clawitzer, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Clawitzer, 64, 48), + .backPic = gMonBackPic_Clawitzer, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Clawitzer), - ICON(Clawitzer, 0), - .footprint = gMonFootprint_Clawitzer, - LEARNSETS(Clawitzer), + .palette = gMonPalette_Clawitzer, + .shinyPalette = gMonShinyPalette_Clawitzer, + .iconSprite = gMonIcon_Clawitzer, + .iconPalIndex = 0, + FOOTPRINT(Clawitzer) + .levelUpLearnset = sClawitzerLevelUpLearnset, + .teachableLearnset = sClawitzerTeachableLearnset, }, #endif //P_FAMILY_CLAUNCHER @@ -2683,7 +2984,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 70, .baseSpAttack = 61, .baseSpDefense = 43, - .types = { TYPE_ELECTRIC, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_NORMAL), .catchRate = 190, .expYield = 58, .evYield_Speed = 1, @@ -2691,7 +2992,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Helioptile"), @@ -2709,17 +3010,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Helioptile, 40, 40), + .frontPic = gMonFrontPic_Helioptile, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Helioptile, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Helioptile, 64, 48), + .backPic = gMonBackPic_Helioptile, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Helioptile), - ICON(Helioptile, 2), - .footprint = gMonFootprint_Helioptile, - LEARNSETS(Helioptile), + .palette = gMonPalette_Helioptile, + .shinyPalette = gMonShinyPalette_Helioptile, + .iconSprite = gMonIcon_Helioptile, + .iconPalIndex = 2, + FOOTPRINT(Helioptile) + .levelUpLearnset = sHelioptileLevelUpLearnset, + .teachableLearnset = sHelioptileTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_HELIOLISK}), }, @@ -2731,7 +3037,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 109, .baseSpAttack = 109, .baseSpDefense = 94, - .types = { TYPE_ELECTRIC, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_NORMAL), .catchRate = 75, .expYield = 168, .evYield_Speed = 1, @@ -2740,7 +3046,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Heliolisk"), @@ -2758,17 +3064,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Heliolisk, 64, 56), + .frontPic = gMonFrontPic_Heliolisk, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Heliolisk, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Heliolisk, 56, 64), + .backPic = gMonBackPic_Heliolisk, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Heliolisk), - ICON(Heliolisk, 2), - .footprint = gMonFootprint_Heliolisk, - LEARNSETS(Heliolisk), + .palette = gMonPalette_Heliolisk, + .shinyPalette = gMonShinyPalette_Heliolisk, + .iconSprite = gMonIcon_Heliolisk, + .iconPalIndex = 2, + FOOTPRINT(Heliolisk) + .levelUpLearnset = sHelioliskLevelUpLearnset, + .teachableLearnset = sHelioliskTeachableLearnset, }, #endif //P_FAMILY_HELIOPTILE @@ -2781,7 +3092,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 48, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_DRAGON), .catchRate = 45, .expYield = 72, .evYield_Attack = 1, @@ -2789,7 +3100,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Tyrunt"), @@ -2807,17 +3118,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Tyrunt, 48, 48), + .frontPic = gMonFrontPic_Tyrunt, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Tyrunt, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tyrunt, 64, 48), + .backPic = gMonBackPic_Tyrunt, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Tyrunt), - ICON(Tyrunt, 2), - .footprint = gMonFootprint_Tyrunt, - LEARNSETS(Tyrunt), + .palette = gMonPalette_Tyrunt, + .shinyPalette = gMonShinyPalette_Tyrunt, + .iconSprite = gMonIcon_Tyrunt, + .iconPalIndex = 2, + FOOTPRINT(Tyrunt) + .levelUpLearnset = sTyruntLevelUpLearnset, + .teachableLearnset = sTyruntTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 39, SPECIES_TYRANTRUM}), }, @@ -2829,7 +3145,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 71, .baseSpAttack = 69, .baseSpDefense = 59, - .types = { TYPE_ROCK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_DRAGON), .catchRate = 45, .expYield = 182, .evYield_Attack = 2, @@ -2837,7 +3153,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_ROCK_HEAD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Tyrantrum"), @@ -2855,17 +3171,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Tyrantrum, 64, 64), + .frontPic = gMonFrontPic_Tyrantrum, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tyrantrum, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tyrantrum, 64, 56), + .backPic = gMonBackPic_Tyrantrum, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Tyrantrum), - ICON(Tyrantrum, 0), - .footprint = gMonFootprint_Tyrantrum, - LEARNSETS(Tyrantrum), + .palette = gMonPalette_Tyrantrum, + .shinyPalette = gMonShinyPalette_Tyrantrum, + .iconSprite = gMonIcon_Tyrantrum, + .iconPalIndex = 0, + FOOTPRINT(Tyrantrum) + .levelUpLearnset = sTyrantrumLevelUpLearnset, + .teachableLearnset = sTyrantrumTeachableLearnset, }, #endif //P_FAMILY_TYRUNT @@ -2878,7 +3199,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 46, .baseSpAttack = 67, .baseSpDefense = 63, - .types = { TYPE_ROCK, TYPE_ICE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ICE), .catchRate = 45, .expYield = 72, .evYield_HP = 1, @@ -2886,7 +3207,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Amaura"), @@ -2904,17 +3225,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Amaura, 32, 56), + .frontPic = gMonFrontPic_Amaura, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Amaura, .frontAnimId = ANIM_CONCAVE_ARC_SMALL_TWICE, - BACK_PIC(Amaura, 40, 64), + .backPic = gMonBackPic_Amaura, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Amaura), - ICON(Amaura, 0), - .footprint = gMonFootprint_Amaura, - LEARNSETS(Amaura), + .palette = gMonPalette_Amaura, + .shinyPalette = gMonShinyPalette_Amaura, + .iconSprite = gMonIcon_Amaura, + .iconPalIndex = 0, + FOOTPRINT(Amaura) + .levelUpLearnset = sAmauraLevelUpLearnset, + .teachableLearnset = sAmauraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 39, SPECIES_AURORUS}), }, @@ -2926,7 +3252,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 58, .baseSpAttack = 99, .baseSpDefense = 92, - .types = { TYPE_ROCK, TYPE_ICE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ICE), .catchRate = 45, .expYield = 104, .evYield_HP = 2, @@ -2934,7 +3260,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Aurorus"), @@ -2952,17 +3278,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aurorus, 64, 64), + .frontPic = gMonFrontPic_Aurorus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Aurorus, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Aurorus, 64, 64), + .backPic = gMonBackPic_Aurorus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Aurorus), - ICON(Aurorus, 0), - .footprint = gMonFootprint_Aurorus, - LEARNSETS(Aurorus), + .palette = gMonPalette_Aurorus, + .shinyPalette = gMonShinyPalette_Aurorus, + .iconSprite = gMonIcon_Aurorus, + .iconPalIndex = 0, + FOOTPRINT(Aurorus) + .levelUpLearnset = sAurorusLevelUpLearnset, + .teachableLearnset = sAurorusTeachableLearnset, }, #endif //P_FAMILY_AMAURA @@ -2975,7 +3306,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 118, .baseSpAttack = 74, .baseSpDefense = 63, - .types = { TYPE_FIGHTING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FLYING), .catchRate = 100, .expYield = 175, .evYield_Attack = 2, @@ -2984,11 +3315,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE }, - #else - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + #endif .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Hawlucha"), @@ -3006,17 +3337,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hawlucha, 64, 56), + .frontPic = gMonFrontPic_Hawlucha, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Hawlucha, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Hawlucha, 64, 48), + .backPic = gMonBackPic_Hawlucha, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Hawlucha), - ICON(Hawlucha, 0), - .footprint = gMonFootprint_Hawlucha, - LEARNSETS(Hawlucha), + .palette = gMonPalette_Hawlucha, + .shinyPalette = gMonShinyPalette_Hawlucha, + .iconSprite = gMonIcon_Hawlucha, + .iconPalIndex = 0, + FOOTPRINT(Hawlucha) + .levelUpLearnset = sHawluchaLevelUpLearnset, + .teachableLearnset = sHawluchaTeachableLearnset, }, #endif //P_FAMILY_HAWLUCHA @@ -3029,7 +3365,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 101, .baseSpAttack = 81, .baseSpDefense = 67, - .types = { TYPE_ELECTRIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FAIRY), .catchRate = 180, .expYield = 151, .evYield_Speed = 2, @@ -3037,7 +3373,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_PICKUP, ABILITY_PLUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dedenne"), @@ -3055,17 +3391,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dedenne, 64, 40), + .frontPic = gMonFrontPic_Dedenne, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dedenne, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Dedenne, 64, 48), + .backPic = gMonBackPic_Dedenne, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Dedenne), - ICON(Dedenne, 0), - .footprint = gMonFootprint_Dedenne, - LEARNSETS(Dedenne), + .palette = gMonPalette_Dedenne, + .shinyPalette = gMonShinyPalette_Dedenne, + .iconSprite = gMonIcon_Dedenne, + .iconPalIndex = 0, + FOOTPRINT(Dedenne) + .levelUpLearnset = sDedenneLevelUpLearnset, + .teachableLearnset = sDedenneTeachableLearnset, }, #endif //P_FAMILY_DEDENNE @@ -3078,7 +3419,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), .catchRate = 60, .expYield = 100, .evYield_Defense = 1, @@ -3087,7 +3428,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Carbink"), @@ -3105,18 +3446,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carbink, 48, 48), + .frontPic = gMonFrontPic_Carbink, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Carbink, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 4, - BACK_PIC(Carbink, 56, 56), + .backPic = gMonBackPic_Carbink, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Carbink), - ICON(Carbink, 2), - .footprint = gMonFootprint_Carbink, - LEARNSETS(Carbink), + .palette = gMonPalette_Carbink, + .shinyPalette = gMonShinyPalette_Carbink, + .iconSprite = gMonIcon_Carbink, + .iconPalIndex = 2, + FOOTPRINT(Carbink) + .levelUpLearnset = sCarbinkLevelUpLearnset, + .teachableLearnset = sCarbinkTeachableLearnset, }, #endif //P_FAMILY_CARBINK @@ -3129,7 +3475,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 40, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_SpDefense = 1, @@ -3138,7 +3484,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Goomy"), @@ -3156,49 +3502,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Goomy, 32, 40), + .frontPic = gMonFrontPic_Goomy, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Goomy, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Goomy, 48, 56), + .backPic = gMonBackPic_Goomy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Goomy), - ICON(Goomy, 5), - .footprint = gMonFootprint_Goomy, - LEARNSETS(Goomy), + .palette = gMonPalette_Goomy, + .shinyPalette = gMonShinyPalette_Goomy, + .iconSprite = gMonIcon_Goomy, + .iconPalIndex = 5, + FOOTPRINT(Goomy) + .levelUpLearnset = sGoomyLevelUpLearnset, + .teachableLearnset = sGoomyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_SLIGGOO}, {EVO_NONE, 0, SPECIES_SLIGGOO_HISUIAN}), }, -#define SLIGGOO_MISC_INFO \ - .catchRate = 45, \ - .expYield = 158, \ - .evYield_SpDefense = 2, \ - .itemRare = ITEM_SHED_SHELL, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sliggoo"), \ - .cryId = CRY_SLIGGOO, \ - .natDexNum = NATIONAL_DEX_SLIGGOO, \ - .footprint = gMonFootprint_Sliggoo, \ - .formSpeciesIdTable = sSliggooFormSpeciesIdTable - [SPECIES_SLIGGOO] = { - SLIGGOO_MISC_INFO, .baseHP = 68, .baseAttack = 75, .baseDefense = 53, .baseSpeed = 60, .baseSpAttack = 83, .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), + .catchRate = 45, + .expYield = 158, + .evYield_SpDefense = 2, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sliggoo"), + .cryId = CRY_SLIGGOO, + .natDexNum = NATIONAL_DEX_SLIGGOO, .categoryName = _("Soft Tissue"), .height = 8, .weight = 175, @@ -3211,47 +3557,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sliggoo, 32, 64), + .frontPic = gMonFrontPic_Sliggoo, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Sliggoo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sliggoo, 48, 64), + .backPic = gMonBackPic_Sliggoo, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Sliggoo), - ICON(Sliggoo, 5), - LEARNSETS(Sliggoo), + .palette = gMonPalette_Sliggoo, + .shinyPalette = gMonShinyPalette_Sliggoo, + .iconSprite = gMonIcon_Sliggoo, + .iconPalIndex = 5, + FOOTPRINT(Sliggoo) + .levelUpLearnset = sSliggooLevelUpLearnset, + .teachableLearnset = sSliggooTeachableLearnset, + .formSpeciesIdTable = sSliggooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA}, {EVO_LEVEL_FOG, 50, SPECIES_GOODRA}), }, -#define GOODRA_MISC_INFO \ - .catchRate = 45, \ - .expYield = 270, \ - .evYield_SpDefense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Goodra"), \ - .cryId = CRY_GOODRA, \ - .natDexNum = NATIONAL_DEX_GOODRA, \ - .footprint = gMonFootprint_Goodra, \ - .formSpeciesIdTable = sGoodraFormSpeciesIdTable - [SPECIES_GOODRA] = { - GOODRA_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 70, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Goodra"), + .cryId = CRY_GOODRA, + .natDexNum = NATIONAL_DEX_GOODRA, .categoryName = _("Dragon"), .height = 20, .weight = 1505, @@ -3264,30 +3612,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Goodra, 64, 64), + .frontPic = gMonFrontPic_Goodra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Goodra, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Goodra, 64, 64), + .backPic = gMonBackPic_Goodra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Goodra), - ICON(Goodra, 5), - LEARNSETS(Goodra), + .palette = gMonPalette_Goodra, + .shinyPalette = gMonShinyPalette_Goodra, + .iconSprite = gMonIcon_Goodra, + .iconPalIndex = 5, + FOOTPRINT(Goodra) + .levelUpLearnset = sGoodraLevelUpLearnset, + .teachableLearnset = sGoodraTeachableLearnset, + .formSpeciesIdTable = sGoodraFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_SLIGGOO_HISUIAN] = { - SLIGGOO_MISC_INFO, .baseHP = 58, .baseAttack = 75, .baseDefense = 83, .baseSpeed = 40, .baseSpAttack = 83, .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_STEEL), + .catchRate = 45, + .expYield = 158, + .evYield_SpDefense = 2, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sliggoo"), + .cryId = CRY_SLIGGOO, + .natDexNum = NATIONAL_DEX_SLIGGOO, .categoryName = _("Snail"), .height = 7, .weight = 685, @@ -3300,32 +3667,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(SliggooHisuian, 48, 56), + .frontPic = gMonFrontPic_SliggooHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_SliggooHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SliggooHisuian, 64, 64), + .backPic = gMonBackPic_SliggooHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SliggooHisuian), - ICON(SliggooHisuian, 2), - LEARNSETS(SliggooHisuian), + .palette = gMonPalette_SliggooHisuian, + .shinyPalette = gMonShinyPalette_SliggooHisuian, + .iconSprite = gMonIcon_SliggooHisuian, + .iconPalIndex = 2, + FOOTPRINT(Sliggoo) .isHisuianForm = TRUE, + .levelUpLearnset = sSliggooHisuianLevelUpLearnset, + .teachableLearnset = sSliggooHisuianTeachableLearnset, + .formSpeciesIdTable = sSliggooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA_HISUIAN}, {EVO_LEVEL_FOG, 50, SPECIES_GOODRA_HISUIAN}), }, [SPECIES_GOODRA_HISUIAN] = { - GOODRA_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Goodra"), + .cryId = CRY_GOODRA, + .natDexNum = NATIONAL_DEX_GOODRA, .categoryName = _("Shell Bunker"), .height = 17, .weight = 3341, @@ -3338,17 +3723,24 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(GoodraHisuian, 56, 64), + .frontPic = gMonFrontPic_GoodraHisuian, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_GoodraHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GoodraHisuian, 64, 64), + .backPic = gMonBackPic_GoodraHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GoodraHisuian), - ICON(GoodraHisuian, 2), - LEARNSETS(GoodraHisuian), + .palette = gMonPalette_GoodraHisuian, + .shinyPalette = gMonShinyPalette_GoodraHisuian, + .iconSprite = gMonIcon_GoodraHisuian, + .iconPalIndex = 2, + FOOTPRINT(Goodra) .isHisuianForm = TRUE, + .levelUpLearnset = sGoodraHisuianLevelUpLearnset, + .teachableLearnset = sGoodraHisuianTeachableLearnset, + .formSpeciesIdTable = sGoodraFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GOOMY @@ -3362,7 +3754,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 75, .baseSpAttack = 80, .baseSpDefense = 87, - .types = { TYPE_STEEL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), .catchRate = 75, .expYield = 165, .evYield_Defense = 1, @@ -3370,7 +3762,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -3389,18 +3781,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klefki, 40, 56), + .frontPic = gMonFrontPic_Klefki, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Klefki, .frontAnimId = ANIM_FOUR_PETAL, .enemyMonElevation = 5, - BACK_PIC(Klefki, 56, 64), + .backPic = gMonBackPic_Klefki, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Klefki), - ICON(Klefki, 0), - .footprint = gMonFootprint_Klefki, - LEARNSETS(Klefki), + .palette = gMonPalette_Klefki, + .shinyPalette = gMonShinyPalette_Klefki, + .iconSprite = gMonIcon_Klefki, + .iconPalIndex = 0, + FOOTPRINT(Klefki) + .levelUpLearnset = sKlefkiLevelUpLearnset, + .teachableLearnset = sKlefkiTeachableLearnset, }, #endif //P_FAMILY_KLEFKI @@ -3413,7 +3810,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 38, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 120, .expYield = 62, .evYield_Attack = 1, @@ -3421,7 +3818,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Phantump"), @@ -3439,18 +3836,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phantump, 48, 48), + .frontPic = gMonFrontPic_Phantump, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Phantump, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Phantump, 64, 56), + .backPic = gMonBackPic_Phantump, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Phantump), - ICON(Phantump, 1), - .footprint = gMonFootprint_Phantump, - LEARNSETS(Phantump), + .palette = gMonPalette_Phantump, + .shinyPalette = gMonShinyPalette_Phantump, + .iconSprite = gMonIcon_Phantump, + .iconPalIndex = 1, + FOOTPRINT(Phantump) + .levelUpLearnset = sPhantumpLevelUpLearnset, + .teachableLearnset = sPhantumpTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_TREVENANT}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_TREVENANT}), }, @@ -3463,7 +3865,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 56, .baseSpAttack = 65, .baseSpDefense = 82, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 60, .expYield = 166, .evYield_Attack = 2, @@ -3471,7 +3873,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Trevenant"), @@ -3489,55 +3891,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Trevenant, 64, 64), + .frontPic = gMonFrontPic_Trevenant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Trevenant, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Trevenant, 64, 64), + .backPic = gMonBackPic_Trevenant, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Trevenant), - ICON(Trevenant, 1), - .footprint = gMonFootprint_Trevenant, - LEARNSETS(Trevenant), + .palette = gMonPalette_Trevenant, + .shinyPalette = gMonShinyPalette_Trevenant, + .iconSprite = gMonIcon_Trevenant, + .iconPalIndex = 1, + FOOTPRINT(Trevenant) + .levelUpLearnset = sTrevenantLevelUpLearnset, + .teachableLearnset = sTrevenantTeachableLearnset, }, #endif //P_FAMILY_PHANTUMP #if P_FAMILY_PUMPKABOO -#define PUMPKABOO_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS }, \ - .catchRate = 120, \ - .expYield = 67, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pumpkaboo"), \ - .natDexNum = NATIONAL_DEX_PUMPKABOO, \ - .categoryName = _("Pumpkin"), \ - .frontAnimFrames = sAnims_Pumpkaboo, \ - .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ - .backAnimId = BACK_ANIM_TRIANGLE_DOWN, \ - PALETTES(Pumpkaboo), \ - ICON(Pumpkaboo, 2), \ - .footprint = gMonFootprint_Pumpkaboo, \ - LEARNSETS(Pumpkaboo), \ - .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable - [SPECIES_PUMPKABOO_AVERAGE] = { - PUMPKABOO_MISC_INFO, .baseHP = 49, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 51, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 4, .weight = 50, .description = COMPOUND_STRING( @@ -3549,24 +3945,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooAverage, 40, 40), + .frontPic = gMonFrontPic_PumpkabooAverage, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, - BACK_PIC(PumpkabooAverage, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooAverage, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_AVERAGE}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_AVERAGE}), }, [SPECIES_PUMPKABOO_SMALL] = { - PUMPKABOO_MISC_INFO, .baseHP = 44, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 56, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 3, .weight = 35, .description = COMPOUND_STRING( @@ -3577,24 +3999,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooSmall, 40, 40), + .frontPic = gMonFrontPic_PumpkabooSmall, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, - BACK_PIC(PumpkabooSmall, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooSmall, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 14, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SMALL}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SMALL}), }, [SPECIES_PUMPKABOO_LARGE] = { - PUMPKABOO_MISC_INFO, .baseHP = 54, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 46, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 5, .weight = 75, .description = COMPOUND_STRING( @@ -3605,26 +4053,52 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooLarge, 48, 48), + .frontPic = gMonFrontPic_PumpkabooLarge, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, - BACK_PIC(PumpkabooLarge, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooLarge, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_LARGE}), }, [SPECIES_PUMPKABOO_SUPER] = { - PUMPKABOO_MISC_INFO, .baseHP = 59, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 41, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, .itemCommon = ITEM_MIRACLE_SEED, .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO_SUPER, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 8, .weight = 150, .description = COMPOUND_STRING( @@ -3635,48 +4109,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooSuper, 48, 48), + .frontPic = gMonFrontPic_PumpkabooSuper, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, - BACK_PIC(PumpkabooSuper, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooSuper, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SUPER}), }, -#define GOURGEIST_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS }, \ - .catchRate = 60, \ - .expYield = 173, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Gourgeist"), \ - .natDexNum = NATIONAL_DEX_GOURGEIST, \ - .categoryName = _("Pumpkin"), \ - .frontAnimFrames = sAnims_Gourgeist, \ - .frontAnimId = ANIM_SHRINK_GROW, \ - .backAnimId = BACK_ANIM_V_STRETCH, \ - PALETTES(Gourgeist), \ - ICON(Gourgeist, 2), \ - .footprint = gMonFootprint_Gourgeist, \ - LEARNSETS(Gourgeist), \ - .formSpeciesIdTable = sGourgeistFormSpeciesIdTable - [SPECIES_GOURGEIST_AVERAGE] = { - GOURGEIST_MISC_INFO, .baseHP = 65, .baseAttack = 90, .baseDefense = 122, .baseSpeed = 84, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 9, .weight = 125, .description = COMPOUND_STRING( @@ -3688,22 +4164,48 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistAverage, 64, 64), + .frontPic = gMonFrontPic_GourgeistAverage, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, - BACK_PIC(GourgeistAverage, 48, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistAverage, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_SMALL] = { - GOURGEIST_MISC_INFO, .baseHP = 55, .baseAttack = 85, .baseDefense = 122, .baseSpeed = 99, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 7, .weight = 95, .description = COMPOUND_STRING( @@ -3715,22 +4217,48 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistSmall, 56, 64), + .frontPic = gMonFrontPic_GourgeistSmall, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 5, - BACK_PIC(GourgeistSmall, 48, 56), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistSmall, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_LARGE] = { - GOURGEIST_MISC_INFO, .baseHP = 75, .baseAttack = 95, .baseDefense = 122, .baseSpeed = 69, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 11, .weight = 140, .description = COMPOUND_STRING( @@ -3742,24 +4270,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistLarge, 64, 64), + .frontPic = gMonFrontPic_GourgeistLarge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - BACK_PIC(GourgeistLarge, 48, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistLarge, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_SUPER] = { - GOURGEIST_MISC_INFO, .baseHP = 85, .baseAttack = 100, .baseDefense = 122, .baseSpeed = 54, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, .itemCommon = ITEM_MIRACLE_SEED, .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST_SUPER, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 17, .weight = 390, .description = COMPOUND_STRING( @@ -3771,18 +4325,31 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistSuper, 64, 64), + .frontPic = gMonFrontPic_GourgeistSuper, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - BACK_PIC(GourgeistSuper, 56, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistSuper, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, #endif //P_FAMILY_PUMPKABOO #if P_FAMILY_BERGMITE #if P_UPDATED_EGG_GROUPS >= GEN_8 - #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MINERAL } + #define BERGMITE_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_MINERAL) #else - #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER } + #define BERGMITE_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_MONSTER) #endif [SPECIES_BERGMITE] = @@ -3793,7 +4360,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 28, .baseSpAttack = 32, .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 190, .expYield = 61, .evYield_Defense = 1, @@ -3819,85 +4386,103 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Bergmite, 40, 40), + .frontPic = gMonFrontPic_Bergmite, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Bergmite, .frontAnimId = ANIM_LUNGE_GROW, - BACK_PIC(Bergmite, 56, 48), + .backPic = gMonBackPic_Bergmite, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Bergmite), - ICON(Bergmite, 0), - .footprint = gMonFootprint_Bergmite, - LEARNSETS(Bergmite), + .palette = gMonPalette_Bergmite, + .shinyPalette = gMonShinyPalette_Bergmite, + .iconSprite = gMonIcon_Bergmite, + .iconPalIndex = 0, + FOOTPRINT(Bergmite) + .levelUpLearnset = sBergmiteLevelUpLearnset, + .teachableLearnset = sBergmiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_AVALUGG}, {EVO_NONE, 0, SPECIES_AVALUGG_HISUIAN}), }, -#define AVALUGG_MISC_INFO \ - .catchRate = 55, \ - .expYield = 180, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = BERGMITE_EGG_GROUPS, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Avalugg"), \ - .cryId = CRY_AVALUGG, \ - .natDexNum = NATIONAL_DEX_AVALUGG, \ - .categoryName = _("Iceberg"), \ - .footprint = gMonFootprint_Avalugg, \ - .formSpeciesIdTable = sAvaluggFormSpeciesIdTable - [SPECIES_AVALUGG] = { - AVALUGG_MISC_INFO, .baseHP = 95, .baseAttack = 117, .baseDefense = 184, .baseSpeed = 28, .baseSpAttack = 44, .baseSpDefense = 46, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 55, + .expYield = 180, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = BERGMITE_EGG_GROUPS, .abilities = { ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Avalugg"), + .cryId = CRY_AVALUGG, + .natDexNum = NATIONAL_DEX_AVALUGG, + .categoryName = _("Iceberg"), .height = 20, .weight = 5050, .description = COMPOUND_STRING( "The way several Bergmite huddle on its\n" "back make it look like an aircraft carrier\n" "made of ice. Its cumbersome frame crushes\n" - "anything that stands in its way.") -, + "anything that stands in its way."), .pokemonScale = 261, .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Avalugg, 64, 56), + .frontPic = gMonFrontPic_Avalugg, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Avalugg, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Avalugg, 64, 40), + .backPic = gMonBackPic_Avalugg, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Avalugg), - ICON(Avalugg, 0), - LEARNSETS(Avalugg), + .palette = gMonPalette_Avalugg, + .shinyPalette = gMonShinyPalette_Avalugg, + .iconSprite = gMonIcon_Avalugg, + .iconPalIndex = 0, + FOOTPRINT(Avalugg) + .levelUpLearnset = sAvaluggLevelUpLearnset, + .teachableLearnset = sAvaluggTeachableLearnset, + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_AVALUGG_HISUIAN] = { - AVALUGG_MISC_INFO, .baseHP = 95, .baseAttack = 127, .baseDefense = 184, .baseSpeed = 38, .baseSpAttack = 34, .baseSpDefense = 36, - .types = { TYPE_ICE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ICE, TYPE_ROCK), + .catchRate = 55, + .expYield = 180, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = BERGMITE_EGG_GROUPS, .abilities = { ABILITY_STRONG_JAW, ABILITY_ICE_BODY, ABILITY_STURDY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Avalugg"), + .cryId = CRY_AVALUGG, + .natDexNum = NATIONAL_DEX_AVALUGG, + .categoryName = _("Iceberg"), .height = 14, .weight = 2624, .description = COMPOUND_STRING( @@ -3908,17 +4493,24 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(AvaluggHisuian, 64, 48), + .frontPic = gMonFrontPic_AvaluggHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 6, .frontAnimFrames = sAnims_AvaluggHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AvaluggHisuian, 64, 32), + .backPic = gMonBackPic_AvaluggHisuian, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AvaluggHisuian), - ICON(AvaluggHisuian, 5), - LEARNSETS(AvaluggHisuian), + .palette = gMonPalette_AvaluggHisuian, + .shinyPalette = gMonShinyPalette_AvaluggHisuian, + .iconSprite = gMonIcon_AvaluggHisuian, + .iconPalIndex = 5, + FOOTPRINT(Avalugg) .isHisuianForm = TRUE, + .levelUpLearnset = sAvaluggHisuianLevelUpLearnset, + .teachableLearnset = sAvaluggHisuianTeachableLearnset, + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BERGMITE @@ -3932,7 +4524,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_FLYING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DRAGON), .catchRate = 190, .expYield = 49, .evYield_Speed = 1, @@ -3940,11 +4532,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + #endif .abilities = { ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Noibat"), @@ -3962,18 +4554,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Noibat, 64, 48), + .frontPic = gMonFrontPic_Noibat, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Noibat, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Noibat, 56, 64), + .backPic = gMonBackPic_Noibat, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Noibat), - ICON(Noibat, 2), - .footprint = gMonFootprint_Noibat, - LEARNSETS(Noibat), + .palette = gMonPalette_Noibat, + .shinyPalette = gMonShinyPalette_Noibat, + .iconSprite = gMonIcon_Noibat, + .iconPalIndex = 2, + FOOTPRINT(Noibat) + .levelUpLearnset = sNoibatLevelUpLearnset, + .teachableLearnset = sNoibatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_NOIVERN}), }, @@ -3985,7 +4582,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 123, .baseSpAttack = 97, .baseSpDefense = 80, - .types = { TYPE_FLYING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DRAGON), .catchRate = 45, .expYield = 187, .evYield_Speed = 2, @@ -3993,11 +4590,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + #endif .abilities = { ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Noivern"), @@ -4015,69 +4612,127 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Noivern, 64, 64), + .frontPic = gMonFrontPic_Noivern, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Noivern, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Noivern, 64, 64), + .backPic = gMonBackPic_Noivern, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Noivern), - ICON(Noivern, 2), - .footprint = gMonFootprint_Noivern, - LEARNSETS(Noivern), + .palette = gMonPalette_Noivern, + .shinyPalette = gMonShinyPalette_Noivern, + .iconSprite = gMonIcon_Noivern, + .iconPalIndex = 2, + FOOTPRINT(Noivern) + .levelUpLearnset = sNoivernLevelUpLearnset, + .teachableLearnset = sNoivernTeachableLearnset, }, #endif //P_FAMILY_NOIBAT #if P_FAMILY_XERNEAS -#define XERNEAS_MISC_INFO(Form) \ - { \ - .baseHP = 126, \ - .baseAttack = 131, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 131, \ - .baseSpDefense = 98, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Xerneas"), \ - .cryId = CRY_XERNEAS, \ - .natDexNum = NATIONAL_DEX_XERNEAS, \ - .categoryName = _("Life"), \ - .height = 30, \ - .weight = 2150, \ - .description = gXerneasPokedexText, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Xerneas##Form, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Xerneas, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Xerneas##Form, 64, 64), \ - .backPicYOffset = 0, \ - .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, \ - PALETTES(Xerneas##Form), \ - ICON(Xerneas##Form, 0), \ - .footprint = gMonFootprint_Xerneas, \ - LEARNSETS(Xerneas), \ - .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ - .formChangeTable = sXerneasFormChangeTable, \ - .isLegendary = TRUE, \ - } + [SPECIES_XERNEAS_NEUTRAL] = + { + .baseHP = 126, + .baseAttack = 131, + .baseDefense = 95, + .baseSpeed = 99, + .baseSpAttack = 131, + .baseSpDefense = 98, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Xerneas"), + .cryId = CRY_XERNEAS, + .natDexNum = NATIONAL_DEX_XERNEAS, + .categoryName = _("Life"), + .height = 30, + .weight = 2150, + .description = gXerneasPokedexText, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_XerneasNeutral, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Xerneas, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_XerneasNeutral, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_XerneasNeutral, + .shinyPalette = gMonShinyPalette_XerneasNeutral, + .iconSprite = gMonIcon_XerneasNeutral, + .iconPalIndex = 0, + FOOTPRINT(Xerneas) + .isLegendary = TRUE, + .levelUpLearnset = sXerneasLevelUpLearnset, + .teachableLearnset = sXerneasTeachableLearnset, + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, + .formChangeTable = sXerneasFormChangeTable, + }, - [SPECIES_XERNEAS_NEUTRAL] = XERNEAS_MISC_INFO(Neutral), - [SPECIES_XERNEAS_ACTIVE] = XERNEAS_MISC_INFO(Active), + [SPECIES_XERNEAS_ACTIVE] = + { + .baseHP = 126, + .baseAttack = 131, + .baseDefense = 95, + .baseSpeed = 99, + .baseSpAttack = 131, + .baseSpDefense = 98, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Xerneas"), + .cryId = CRY_XERNEAS, + .natDexNum = NATIONAL_DEX_XERNEAS, + .categoryName = _("Life"), + .height = 30, + .weight = 2150, + .description = gXerneasPokedexText, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_XerneasActive, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Xerneas, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_XerneasActive, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_XerneasActive, + .shinyPalette = gMonShinyPalette_XerneasActive, + .iconSprite = gMonIcon_XerneasActive, + .iconPalIndex = 0, + FOOTPRINT(Xerneas) + .isLegendary = TRUE, + .levelUpLearnset = sXerneasLevelUpLearnset, + .teachableLearnset = sXerneasTeachableLearnset, + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, + .formChangeTable = sXerneasFormChangeTable, + }, #endif //P_FAMILY_XERNEAS #if P_FAMILY_YVELTAL @@ -4089,18 +4744,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 99, .baseSpAttack = 131, .baseSpDefense = 98, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_DARK_AURA, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DARK_AURA, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Yveltal"), .cryId = CRY_YVELTAL, .natDexNum = NATIONAL_DEX_YVELTAL, @@ -4116,127 +4770,258 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 360, .trainerOffset = 7, - FRONT_PIC(Yveltal, 64, 64), + .frontPic = gMonFrontPic_Yveltal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Yveltal, .frontAnimId = ANIM_FRONT_FLIP, .enemyMonElevation = 5, - BACK_PIC(Yveltal, 64, 48), + .backPic = gMonBackPic_Yveltal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Yveltal), - ICON(Yveltal, 0), - .footprint = gMonFootprint_Yveltal, - LEARNSETS(Yveltal), + .palette = gMonPalette_Yveltal, + .shinyPalette = gMonShinyPalette_Yveltal, + .iconSprite = gMonIcon_Yveltal, + .iconPalIndex = 0, + FOOTPRINT(Yveltal) + .isLegendary = TRUE, + .levelUpLearnset = sYveltalLevelUpLearnset, + .teachableLearnset = sYveltalTeachableLearnset, }, #endif //P_FAMILY_YVELTAL #if P_FAMILY_ZYGARDE -#define ZYGARDE_MISC_INFO(ability) \ - .types = { TYPE_DRAGON, TYPE_GROUND }, \ - .catchRate = 3, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ability, ABILITY_NONE }, \ - .noFlip = TRUE, \ - .speciesName = _("Zygarde"), \ - .natDexNum = NATIONAL_DEX_ZYGARDE, \ - .categoryName = _("Order"), \ - .footprint = gMonFootprint_Zygarde, \ - LEARNSETS(Zygarde), \ - .formSpeciesIdTable = sZygardeFormSpeciesIdTable, \ - .isLegendary = TRUE + [SPECIES_ZYGARDE_50_AURA_BREAK] = + { + .baseHP = 108, + .baseAttack = 100, + .baseDefense = 121, + .baseSpeed = 95, + .baseSpAttack = 81, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AURA_BREAK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_50, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 50, + .weight = 3050, + .description = gZygarde50PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde50, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zygarde50, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .backPic = gMonBackPic_Zygarde50, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Zygarde50, + .shinyPalette = gMonShinyPalette_Zygarde50, + .iconSprite = gMonIcon_Zygarde50, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde50AuraBreakFormChangeTable, + }, + [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = + { + .baseHP = 108, + .baseAttack = 100, + .baseDefense = 121, + .baseSpeed = 95, + .baseSpAttack = 81, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_50, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 50, + .weight = 3050, + .description = gZygarde50PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde50, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zygarde50, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .backPic = gMonBackPic_Zygarde50, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + .palette = gMonPalette_Zygarde50, + .shinyPalette = gMonShinyPalette_Zygarde50, + .iconSprite = gMonIcon_Zygarde50, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde50PowerConstructFormChangeTable, + }, + [SPECIES_ZYGARDE_10_AURA_BREAK] = + { + .baseHP = 54, + .baseAttack = 100, + .baseDefense = 71, + .baseSpeed = 115, + .baseSpAttack = 61, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 219, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AURA_BREAK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_10, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 12, + .weight = 335, + .description = gZygarde10PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde10, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zygarde10, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,, + .backPic = gMonBackPic_Zygarde10, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Zygarde10, + .shinyPalette = gMonShinyPalette_Zygarde10, + .iconSprite = gMonIcon_Zygarde10, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde10AuraBreakFormChangeTable, + }, -#define ZYGARDE_50_SPECIES_INFO(ability) \ - { \ - .baseHP = 108, \ - .baseAttack = 100, \ - .baseDefense = 121, \ - .baseSpeed = 95, \ - .baseSpAttack = 81, \ - .baseSpDefense = 95, \ - .expYield = 270, \ - .bodyColor = BODY_COLOR_GREEN, \ - .cryId = CRY_ZYGARDE_50, \ - .height = 50, \ - .weight = 3050, \ - .description = gZygarde50PokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 721, \ - .trainerOffset = 19, \ - FRONT_PIC(Zygarde50, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Zygarde50, \ - .frontAnimId = ANIM_TIP_MOVE_FORWARD, \ - BACK_PIC(Zygarde50, 64, 64), \ - .backPicYOffset = 4, \ - .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ - ? BACK_ANIM_SHAKE_GLOW_GREEN \ - : BACK_ANIM_V_STRETCH), \ - PALETTES(Zygarde50), \ - ICON(Zygarde50, 1), \ - .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ - ? sZygarde50PowerConstructFormChangeTable \ - : sZygarde50AuraBreakFormChangeTable), \ - ZYGARDE_MISC_INFO(ability), \ - } + [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = + { + .baseHP = 54, + .baseAttack = 100, + .baseDefense = 71, + .baseSpeed = 115, + .baseSpAttack = 61, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 219, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_10, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 12, + .weight = 335, + .description = gZygarde10PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde10, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zygarde10, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,, + .backPic = gMonBackPic_Zygarde10, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + .palette = gMonPalette_Zygarde10, + .shinyPalette = gMonShinyPalette_Zygarde10, + .iconSprite = gMonIcon_Zygarde10, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde10PowerConstructFormChangeTable, + }, -#define ZYGARDE_10_SPECIES_INFO(ability) \ - { \ - .baseHP = 54, \ - .baseAttack = 100, \ - .baseDefense = 71, \ - .baseSpeed = 115, \ - .baseSpAttack = 61, \ - .baseSpDefense = 85, \ - .expYield = 219, \ - .bodyColor = BODY_COLOR_BLACK, \ - .cryId = CRY_ZYGARDE_10, \ - .height = 12, \ - .weight = 335, \ - .description = gZygarde10PokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 721, \ - .trainerOffset = 19, \ - FRONT_PIC(Zygarde10, 56, 64), \ - .frontPicYOffset = 2, \ - .frontAnimFrames = sAnims_Zygarde10, \ - BACK_PIC(Zygarde10, 64, 56), \ - .backPicYOffset = 8, \ - .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ - ? BACK_ANIM_SHAKE_GLOW_GREEN \ - : BACK_ANIM_JOLT_RIGHT), \ - PALETTES(Zygarde10), \ - ICON(Zygarde10, 1), \ - .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ - ? sZygarde10PowerConstructFormChangeTable \ - : sZygarde10AuraBreakFormChangeTable), \ - ZYGARDE_MISC_INFO(ability), \ - } - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - - [SPECIES_ZYGARDE_50_AURA_BREAK] = ZYGARDE_50_SPECIES_INFO(ABILITY_AURA_BREAK), - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = ZYGARDE_50_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), - [SPECIES_ZYGARDE_10_AURA_BREAK] = ZYGARDE_10_SPECIES_INFO(ABILITY_AURA_BREAK), - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = ZYGARDE_10_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), [SPECIES_ZYGARDE_COMPLETE] = { - ZYGARDE_MISC_INFO(ABILITY_POWER_CONSTRUCT), .baseHP = 216, .baseAttack = 100, .baseDefense = 121, .baseSpeed = 85, .baseSpAttack = 91, .baseSpDefense = 95, - .expYield = 319, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 354 : 319, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), .cryId = CRY_ZYGARDE_COMPLETE, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), .height = 45, .weight = 6100, .description = COMPOUND_STRING( @@ -4248,52 +5033,53 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(ZygardeComplete, 64, 64), + .frontPic = gMonFrontPic_ZygardeComplete, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZygardeComplete, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(ZygardeComplete, 64, 64), + .backPic = gMonBackPic_ZygardeComplete, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(ZygardeComplete), - ICON(ZygardeComplete, 1), + .palette = gMonPalette_ZygardeComplete, + .shinyPalette = gMonShinyPalette_ZygardeComplete, + .iconSprite = gMonIcon_ZygardeComplete, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formChangeTable = sZygardeCompleteFormChangeTable, }, #endif //P_FAMILY_ZYGARDE #if P_FAMILY_DIANCIE -#define DIANCE_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_FAIRY }, \ - .catchRate = 3, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Diancie"), \ - .natDexNum = NATIONAL_DEX_DIANCIE, \ - .categoryName = _("Jewel"), \ - .footprint = gMonFootprint_Diancie, \ - LEARNSETS(Diancie), \ - .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ - .formChangeTable = sDiancieFormChangeTable, \ - .isMythical = TRUE - [SPECIES_DIANCIE] = { - DIANCE_MISC_INFO, .baseHP = 50, .baseAttack = 100, .baseDefense = 150, .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 150, - .expYield = 270, - .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Diancie"), .cryId = CRY_DIANCIE, + .natDexNum = NATIONAL_DEX_DIANCIE, + .categoryName = _("Jewel"), .height = 7, .weight = 88, .description = COMPOUND_STRING( @@ -4305,30 +5091,52 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Diancie, 40, 64), + .frontPic = gMonFrontPic_Diancie, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Diancie, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Diancie, 64, 64), + .backPic = gMonBackPic_Diancie, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Diancie), - ICON(Diancie, 1), + .palette = gMonPalette_Diancie, + .shinyPalette = gMonShinyPalette_Diancie, + .iconSprite = gMonIcon_Diancie, + .iconPalIndex = 1, + FOOTPRINT(Diancie) + .isMythical = TRUE, + .levelUpLearnset = sDiancieLevelUpLearnset, + .teachableLearnset = sDiancieTeachableLearnset, + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, + .formChangeTable = sDiancieFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_DIANCIE_MEGA] = { - DIANCE_MISC_INFO, .baseHP = 50, .baseAttack = 160, .baseDefense = 110, .baseSpeed = 110, .baseSpAttack = 160, .baseSpDefense = 110, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), + .catchRate = 3, .expYield = 315, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Diancie"), .cryId = CRY_DIANCIE_MEGA, + .natDexNum = NATIONAL_DEX_DIANCIE, + .categoryName = _("Jewel"), .height = 11, .weight = 278, .description = COMPOUND_STRING( @@ -4340,50 +5148,53 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(DiancieMega, 64, 64), + .frontPic = gMonFrontPic_DiancieMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DiancieMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DiancieMega, 64, 56), + .backPic = gMonBackPic_DiancieMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DiancieMega), - ICON(DiancieMega, 0), + .palette = gMonPalette_DiancieMega, + .shinyPalette = gMonShinyPalette_DiancieMega, + .iconSprite = gMonIcon_DiancieMega, + .iconPalIndex = 0, + FOOTPRINT(Diancie) + .isMythical = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sDiancieLevelUpLearnset, + .teachableLearnset = sDiancieTeachableLearnset, + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, + .formChangeTable = sDiancieFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_DIANCIE #if P_FAMILY_HOOPA -#define HOOPA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_MAGICIAN, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Hoopa"), \ - .natDexNum = NATIONAL_DEX_HOOPA, \ - .footprint = gMonFootprint_Hoopa, \ - .formSpeciesIdTable = sHoopaFormSpeciesIdTable, \ - .formChangeTable = sHoopaFormChangeTable, \ - .isMythical = TRUE - [SPECIES_HOOPA_CONFINED] = { - HOOPA_MISC_INFO, .baseHP = 80, .baseAttack = 110, .baseDefense = 60, .baseSpeed = 70, .baseSpAttack = 150, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Hoopa"), .cryId = CRY_HOOPA_CONFINED, + .natDexNum = NATIONAL_DEX_HOOPA, .categoryName = _("Mischief"), .height = 5, .weight = 90, @@ -4396,31 +5207,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoopaConfined, 48, 48), + .frontPic = gMonFrontPic_HoopaConfined, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_HoopaConfined, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 13, - BACK_PIC(HoopaConfined, 64, 56), + .backPic = gMonBackPic_HoopaConfined, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(HoopaConfined), - ICON(HoopaConfined, 0), - LEARNSETS(HoopaConfined), + .palette = gMonPalette_HoopaConfined, + .shinyPalette = gMonShinyPalette_HoopaConfined, + .iconSprite = gMonIcon_HoopaConfined, + .iconPalIndex = 0, + FOOTPRINT(Hoopa) + .isMythical = TRUE, + .levelUpLearnset = sHoopaConfinedLevelUpLearnset, + .teachableLearnset = sHoopaConfinedTeachableLearnset, + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, + .formChangeTable = sHoopaFormChangeTable, }, [SPECIES_HOOPA_UNBOUND] = { - HOOPA_MISC_INFO, .baseHP = 80, .baseAttack = 160, .baseDefense = 60, .baseSpeed = 80, .baseSpAttack = 170, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_DARK }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_DARK), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, .friendship = P_UPDATED_FRIENDSHIP >= GEN_8 ? STANDARD_FRIENDSHIP : 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Hoopa"), .cryId = CRY_HOOPA_UNBOUND, + .natDexNum = NATIONAL_DEX_HOOPA, .categoryName = _("Djinn"), .height = 65, .weight = 490, @@ -4433,17 +5263,26 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoopaUnbound, 64, 64), + .frontPic = gMonFrontPic_HoopaUnbound, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoopaUnbound, .frontAnimId = ANIM_GROW_IN_STAGES, .enemyMonElevation = 3, - BACK_PIC(HoopaUnbound, 64, 64), + .backPic = gMonBackPic_HoopaUnbound, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(HoopaUnbound), - ICON(HoopaUnbound, 0), - LEARNSETS(HoopaUnbound), + .palette = gMonPalette_HoopaUnbound, + .shinyPalette = gMonShinyPalette_HoopaUnbound, + .iconSprite = gMonIcon_HoopaUnbound, + .iconPalIndex = 0, + FOOTPRINT(Hoopa) + .isMythical = TRUE, + .levelUpLearnset = sHoopaUnboundLevelUpLearnset, + .teachableLearnset = sHoopaUnboundTeachableLearnset, + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, + .formChangeTable = sHoopaFormChangeTable, }, #endif //P_FAMILY_HOOPA @@ -4456,18 +5295,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 70, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_WATER }, + .types = MON_TYPES(TYPE_FIRE, TYPE_WATER), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isMythical = TRUE, .speciesName = _("Volcanion"), .cryId = CRY_VOLCANION, .natDexNum = NATIONAL_DEX_VOLCANION, @@ -4483,17 +5321,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Volcanion, 64, 64), + .frontPic = gMonFrontPic_Volcanion, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Volcanion, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Volcanion, 64, 64), + .backPic = gMonBackPic_Volcanion, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Volcanion), - ICON(Volcanion, 0), - .footprint = gMonFootprint_Volcanion, - LEARNSETS(Volcanion), + .palette = gMonPalette_Volcanion, + .shinyPalette = gMonShinyPalette_Volcanion, + .iconSprite = gMonIcon_Volcanion, + .iconPalIndex = 0, + FOOTPRINT(Volcanion) + .isMythical = TRUE, + .levelUpLearnset = sVolcanionLevelUpLearnset, + .teachableLearnset = sVolcanionTeachableLearnset, }, #endif //P_FAMILY_VOLCANION diff --git a/src/data/pokemon/species_info/gen_7.h b/src/data/pokemon/species_info/gen_7_families.h similarity index 54% rename from src/data/pokemon/species_info/gen_7.h rename to src/data/pokemon/species_info/gen_7_families.h index e53c8b3dc..8a498fff4 100644 --- a/src/data/pokemon/species_info/gen_7.h +++ b/src/data/pokemon/species_info/gen_7_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, .expYield = 64, .evYield_HP = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Rowlet"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rowlet, 31, 37), + .frontPic = gMonFrontPic_Rowlet, + .frontPicSize = MON_COORDS_SIZE(31, 37), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Rowlet, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Rowlet, 43, 36), + .backPic = gMonBackPic_Rowlet, + .backPicSize = MON_COORDS_SIZE(43, 36), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Rowlet), - ICON(Rowlet, 0), - .footprint = gMonFootprint_Rowlet, - LEARNSETS(Rowlet), + .palette = gMonPalette_Rowlet, + .shinyPalette = gMonShinyPalette_Rowlet, + .iconSprite = gMonIcon_Rowlet, + .iconPalIndex = 0, + FOOTPRINT(Rowlet) + .levelUpLearnset = sRowletLevelUpLearnset, + .teachableLearnset = sRowletTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DARTRIX}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 52, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, .expYield = 147, .evYield_HP = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -87,101 +92,132 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dartrix, 34, 47), + .frontPic = gMonFrontPic_Dartrix, + .frontPicSize = MON_COORDS_SIZE(34, 47), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Dartrix, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Dartrix, 56, 54), + .backPic = gMonBackPic_Dartrix, + .backPicSize = MON_COORDS_SIZE(56, 54), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Dartrix), - ICON(Dartrix, 1), - .footprint = gMonFootprint_Dartrix, - LEARNSETS(Dartrix), + .palette = gMonPalette_Dartrix, + .shinyPalette = gMonShinyPalette_Dartrix, + .iconSprite = gMonIcon_Dartrix, + .iconPalIndex = 1, + FOOTPRINT(Dartrix) + .levelUpLearnset = sDartrixLevelUpLearnset, + .teachableLearnset = sDartrixTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DECIDUEYE}, {EVO_NONE, 0, SPECIES_DECIDUEYE_HISUIAN}), }, -#define DECIDUEYE_MISC_INFO \ - .catchRate = 45, \ - .expYield = 239, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Decidueye"), \ - .cryId = CRY_DECIDUEYE, \ - .natDexNum = NATIONAL_DEX_DECIDUEYE, \ - .categoryName = _("Arrow Quill"), \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Decidueye, \ - .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable - [SPECIES_DECIDUEYE] = { - DECIDUEYE_MISC_INFO, .baseHP = 78, .baseAttack = 107, .baseDefense = 75, .baseSpeed = 70, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Decidueye"), + .cryId = CRY_DECIDUEYE, + .natDexNum = NATIONAL_DEX_DECIDUEYE, + .categoryName = _("Arrow Quill"), + .height = 16, .weight = 366, .description = COMPOUND_STRING( "Decidueye is cool and cautious.\n" "It fires arrow quills from its wings with\n" "such precision, they can pierce a pebble\n" "at distances of over a hundred yards."), - FRONT_PIC(Decidueye, 45, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Decidueye, + .frontPicSize = MON_COORDS_SIZE(45, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Decidueye, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Decidueye, 46, 62), + .backPic = gMonBackPic_Decidueye, + .backPicSize = MON_COORDS_SIZE(46, 62), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Decidueye), - ICON(Decidueye, 1), - LEARNSETS(Decidueye), + .palette = gMonPalette_Decidueye, + .shinyPalette = gMonShinyPalette_Decidueye, + .iconSprite = gMonIcon_Decidueye, + .iconPalIndex = 1, + FOOTPRINT(Decidueye) + .levelUpLearnset = sDecidueyeLevelUpLearnset, + .teachableLearnset = sDecidueyeTeachableLearnset, + .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_DECIDUEYE_HISUIAN] = { - DECIDUEYE_MISC_INFO, .baseHP = 88, .baseAttack = 112, .baseDefense = 80, .baseSpeed = 60, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Decidueye"), + .cryId = CRY_DECIDUEYE, + .natDexNum = NATIONAL_DEX_DECIDUEYE, + .categoryName = _("Arrow Quill"), + .height = 16, .weight = 370, .description = COMPOUND_STRING( "The air stored inside the rachises\n" "of Decidueye's feathers insulates\n" "the Pokémon against Hisui's extreme\n" "cold."), - FRONT_PIC(DecidueyeHisuian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_DecidueyeHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DecidueyeHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DecidueyeHisuian, 64, 64), + .backPic = gMonBackPic_DecidueyeHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DecidueyeHisuian), - ICON(DecidueyeHisuian, 0), - LEARNSETS(DecidueyeHisuian), + .palette = gMonPalette_DecidueyeHisuian, + .shinyPalette = gMonShinyPalette_DecidueyeHisuian, + .iconSprite = gMonIcon_DecidueyeHisuian, + .iconPalIndex = 0, + FOOTPRINT(Decidueye) .isHisuianForm = TRUE, + .levelUpLearnset = sDecidueyeHisuianLevelUpLearnset, + .teachableLearnset = sDecidueyeHisuianTeachableLearnset, + .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ROWLET @@ -195,7 +231,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 64, .evYield_Speed = 1, @@ -203,7 +239,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Litten"), @@ -221,17 +257,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litten, 48, 40), + .frontPic = gMonFrontPic_Litten, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Litten, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Litten, 64, 48), + .backPic = gMonBackPic_Litten, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Litten), - ICON(Litten, 0), - .footprint = gMonFootprint_Litten, - LEARNSETS(Litten), + .palette = gMonPalette_Litten, + .shinyPalette = gMonShinyPalette_Litten, + .iconSprite = gMonIcon_Litten, + .iconPalIndex = 0, + FOOTPRINT(Litten) + .levelUpLearnset = sLittenLevelUpLearnset, + .teachableLearnset = sLittenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_TORRACAT}), }, @@ -243,7 +284,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 90, .baseSpAttack = 80, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 147, .evYield_Speed = 2, @@ -251,7 +292,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Torracat"), @@ -269,17 +310,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torracat, 56, 64), + .frontPic = gMonFrontPic_Torracat, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Torracat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Torracat, 64, 56), + .backPic = gMonBackPic_Torracat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Torracat), - ICON(Torracat, 0), - .footprint = gMonFootprint_Torracat, - LEARNSETS(Torracat), + .palette = gMonPalette_Torracat, + .shinyPalette = gMonShinyPalette_Torracat, + .iconSprite = gMonIcon_Torracat, + .iconPalIndex = 0, + FOOTPRINT(Torracat) + .levelUpLearnset = sTorracatLevelUpLearnset, + .teachableLearnset = sTorracatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_INCINEROAR}), }, @@ -291,15 +337,15 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_DARK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_DARK), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Incineroar"), @@ -317,17 +363,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Incineroar, 64, 64), + .frontPic = gMonFrontPic_Incineroar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Incineroar, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Incineroar, 64, 56), + .backPic = gMonBackPic_Incineroar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Incineroar), - ICON(Incineroar, 0), - .footprint = gMonFootprint_Incineroar, - LEARNSETS(Incineroar), + .palette = gMonPalette_Incineroar, + .shinyPalette = gMonShinyPalette_Incineroar, + .iconSprite = gMonIcon_Incineroar, + .iconPalIndex = 0, + FOOTPRINT(Incineroar) + .levelUpLearnset = sIncineroarLevelUpLearnset, + .teachableLearnset = sIncineroarTeachableLearnset, }, #endif //P_FAMILY_LITTEN @@ -340,7 +391,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 66, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 64, .evYield_SpAttack = 1, @@ -348,7 +399,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Popplio"), @@ -366,17 +417,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Popplio, 40, 48), + .frontPic = gMonFrontPic_Popplio, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Popplio, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Popplio, 48, 48), + .backPic = gMonBackPic_Popplio, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Popplio), - ICON(Popplio, 0), - .footprint = gMonFootprint_Popplio, - LEARNSETS(Popplio), + .palette = gMonPalette_Popplio, + .shinyPalette = gMonShinyPalette_Popplio, + .iconSprite = gMonIcon_Popplio, + .iconPalIndex = 0, + FOOTPRINT(Popplio) + .levelUpLearnset = sPopplioLevelUpLearnset, + .teachableLearnset = sPopplioTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_BRIONNE}), }, @@ -388,7 +444,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 50, .baseSpAttack = 91, .baseSpDefense = 81, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 147, .evYield_SpAttack = 2, @@ -396,7 +452,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Brionne"), @@ -414,17 +470,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Brionne, 48, 56), + .frontPic = gMonFrontPic_Brionne, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Brionne, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Brionne, 48, 56), + .backPic = gMonBackPic_Brionne, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Brionne), - ICON(Brionne, 0), - .footprint = gMonFootprint_Brionne, - LEARNSETS(Brionne), + .palette = gMonPalette_Brionne, + .shinyPalette = gMonShinyPalette_Brionne, + .iconSprite = gMonIcon_Brionne, + .iconPalIndex = 0, + FOOTPRINT(Brionne) + .levelUpLearnset = sBrionneLevelUpLearnset, + .teachableLearnset = sBrionneTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_PRIMARINA}), }, @@ -436,15 +497,15 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 126, .baseSpDefense = 116, - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Primarina"), @@ -462,17 +523,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Primarina, 64, 64), + .frontPic = gMonFrontPic_Primarina, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Primarina, .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, - BACK_PIC(Primarina, 64, 64), + .backPic = gMonBackPic_Primarina, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Primarina), - ICON(Primarina, 0), - .footprint = gMonFootprint_Primarina, - LEARNSETS(Primarina), + .palette = gMonPalette_Primarina, + .shinyPalette = gMonShinyPalette_Primarina, + .iconSprite = gMonIcon_Primarina, + .iconPalIndex = 0, + FOOTPRINT(Primarina) + .levelUpLearnset = sPrimarinaLevelUpLearnset, + .teachableLearnset = sPrimarinaTeachableLearnset, }, #endif //P_FAMILY_POPPLIO @@ -485,7 +551,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 53, .evYield_Attack = 1, @@ -494,7 +560,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Pikipek"), @@ -512,17 +578,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pikipek, 29, 40), + .frontPic = gMonFrontPic_Pikipek, + .frontPicSize = MON_COORDS_SIZE(29, 40), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pikipek, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pikipek, 48, 48), + .backPic = gMonBackPic_Pikipek, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Pikipek), - ICON(Pikipek, 2), - .footprint = gMonFootprint_Pikipek, - LEARNSETS(Pikipek), + .palette = gMonPalette_Pikipek, + .shinyPalette = gMonShinyPalette_Pikipek, + .iconSprite = gMonIcon_Pikipek, + .iconPalIndex = 2, + FOOTPRINT(Pikipek) + .levelUpLearnset = sPikipekLevelUpLearnset, + .teachableLearnset = sPikipekTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_TRUMBEAK}), }, @@ -534,7 +605,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, .expYield = 124, .evYield_Attack = 2, @@ -543,7 +614,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Trumbeak"), @@ -561,17 +632,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trumbeak, 44, 53), + .frontPic = gMonFrontPic_Trumbeak, + .frontPicSize = MON_COORDS_SIZE(44, 53), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Trumbeak, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Trumbeak, 56, 56), + .backPic = gMonBackPic_Trumbeak, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Trumbeak), - ICON(Trumbeak, 0), - .footprint = gMonFootprint_Trumbeak, - LEARNSETS(Trumbeak), + .palette = gMonPalette_Trumbeak, + .shinyPalette = gMonShinyPalette_Trumbeak, + .iconSprite = gMonIcon_Trumbeak, + .iconPalIndex = 0, + FOOTPRINT(Trumbeak) + .levelUpLearnset = sTrumbeakLevelUpLearnset, + .teachableLearnset = sTrumbeakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_TOUCANNON}), }, @@ -583,16 +659,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 75, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, - .expYield = 218, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 218, .evYield_Attack = 3, .itemRare = ITEM_RAWST_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Toucannon"), @@ -610,17 +686,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toucannon, 59, 59), + .frontPic = gMonFrontPic_Toucannon, + .frontPicSize = MON_COORDS_SIZE(59, 59), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toucannon, .frontAnimId = ANIM_SHAKE_GLOW_RED_SLOW, - BACK_PIC(Toucannon, 64, 56), + .backPic = gMonBackPic_Toucannon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Toucannon), - ICON(Toucannon, 0), - .footprint = gMonFootprint_Toucannon, - LEARNSETS(Toucannon), + .palette = gMonPalette_Toucannon, + .shinyPalette = gMonShinyPalette_Toucannon, + .iconSprite = gMonIcon_Toucannon, + .iconPalIndex = 0, + FOOTPRINT(Toucannon) + .levelUpLearnset = sToucannonLevelUpLearnset, + .teachableLearnset = sToucannonTeachableLearnset, }, #endif //P_FAMILY_PIKIPEK @@ -633,7 +714,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_Attack = 1, @@ -642,7 +723,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Yungoos"), @@ -660,17 +741,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yungoos, 64, 40), + .frontPic = gMonFrontPic_Yungoos, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Yungoos, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Yungoos, 48, 40), + .backPic = gMonBackPic_Yungoos, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Yungoos), - ICON(Yungoos, 2), - .footprint = gMonFootprint_Yungoos, - LEARNSETS(Yungoos), + .palette = gMonPalette_Yungoos, + .shinyPalette = gMonShinyPalette_Yungoos, + .iconSprite = gMonIcon_Yungoos, + .iconPalIndex = 2, + FOOTPRINT(Yungoos) + .levelUpLearnset = sYungoosLevelUpLearnset, + .teachableLearnset = sYungoosTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 20, SPECIES_GUMSHOOS}), }, @@ -682,7 +768,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 127, .expYield = 146, .evYield_Attack = 2, @@ -691,7 +777,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Gumshoos"), @@ -700,26 +786,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Stakeout"), .height = 7, .weight = 142, - .description = COMPOUND_STRING( - "When it finds a trace of its prey, it\n" - "patiently stakes out the location...\n" - "but as it's diurnal, it's always snoozing\n" - "by nightfall."), + .description = gGumshoosPokedexText, .pokemonScale = 365, .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gumshoos, 56, 56), + .frontPic = gMonFrontPic_Gumshoos, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Gumshoos, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Gumshoos, 48, 56), + .backPic = gMonBackPic_Gumshoos, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gumshoos), - ICON(Gumshoos, 2), - .footprint = gMonFootprint_Gumshoos, - LEARNSETS(Gumshoos), + .palette = gMonPalette_Gumshoos, + .shinyPalette = gMonShinyPalette_Gumshoos, + .iconSprite = gMonIcon_Gumshoos, + .iconPalIndex = 2, + FOOTPRINT(Gumshoos) + .levelUpLearnset = sGumshoosLevelUpLearnset, + .teachableLearnset = sGumshoosTeachableLearnset, + .formSpeciesIdTable = sGumshoosFormSpeciesIdTable, + }, + + [SPECIES_GUMSHOOS_TOTEM] = + { + .baseHP = 88, + .baseAttack = 110, + .baseDefense = 60, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 127, + .expYield = 146, + .evYield_Attack = 2, + .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ADAPTABILITY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gumshoos"), + .cryId = CRY_GUMSHOOS, + .natDexNum = NATIONAL_DEX_GUMSHOOS, + .categoryName = _("Stakeout"), + .height = 14, + .weight = 600, + .description = gGumshoosPokedexText, + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Gumshoos, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Gumshoos, + .frontAnimId = ANIM_H_SHAKE, + .backPic = gMonBackPic_Gumshoos, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Gumshoos, + .shinyPalette = gMonShinyPalette_Gumshoos, + .iconSprite = gMonIcon_Gumshoos, + .iconPalIndex = 2, + FOOTPRINT(Gumshoos) + .isTotem = TRUE, + .levelUpLearnset = sGumshoosLevelUpLearnset, + .teachableLearnset = sGumshoosTeachableLearnset, + .formSpeciesIdTable = sGumshoosFormSpeciesIdTable, }, #endif //P_FAMILY_YUNGOOS @@ -732,7 +871,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 46, .baseSpAttack = 55, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 60, .evYield_Attack = 1, @@ -740,8 +879,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SWARM, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Grubbin"), .cryId = CRY_GRUBBIN, @@ -758,17 +897,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grubbin, 48, 32), + .frontPic = gMonFrontPic_Grubbin, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Grubbin, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Grubbin, 64, 32), + .backPic = gMonBackPic_Grubbin, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grubbin), - ICON(Grubbin, 0), - .footprint = gMonFootprint_Grubbin, - LEARNSETS(Grubbin), + .palette = gMonPalette_Grubbin, + .shinyPalette = gMonShinyPalette_Grubbin, + .iconSprite = gMonIcon_Grubbin, + .iconPalIndex = 0, + FOOTPRINT(Grubbin) + .levelUpLearnset = sGrubbinLevelUpLearnset, + .teachableLearnset = sGrubbinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CHARJABUG}), }, @@ -780,7 +924,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 120, .expYield = 140, .evYield_Defense = 2, @@ -789,8 +933,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_BATTERY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_BATTERY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Charjabug"), .cryId = CRY_CHARJABUG, @@ -807,19 +951,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charjabug, 40, 40), + .frontPic = gMonFrontPic_Charjabug, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Charjabug, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_SLOW, - BACK_PIC(Charjabug, 64, 40), + .backPic = gMonBackPic_Charjabug, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Charjabug), - ICON(Charjabug, 1), - .footprint = gMonFootprint_Charjabug, - LEARNSETS(Charjabug), + .palette = gMonPalette_Charjabug, + .shinyPalette = gMonShinyPalette_Charjabug, + .iconSprite = gMonIcon_Charjabug, + .iconPalIndex = 1, + FOOTPRINT(Charjabug) + .levelUpLearnset = sCharjabugLevelUpLearnset, + .teachableLearnset = sCharjabugTeachableLearnset, .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_VIKAVOLT}, - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}), + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}, + {EVO_NONE, 0, SPECIES_VIKAVOLT_TOTEM}), }, [SPECIES_VIKAVOLT] = @@ -830,16 +980,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 145, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 45, - .expYield = 225, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 225, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Vikavolt"), .cryId = CRY_VIKAVOLT, @@ -847,27 +997,80 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Stag Beetle"), .height = 15, .weight = 450, - .description = COMPOUND_STRING( - "It concentrates electrical energy within\n" - "its large jaws and uses it to zap its foes.\n" - "It overwhelms bird Pokémon with shocking\n" - "beams of electrical energy."), + .description = gVikavoltPokedexText, .pokemonScale = 268, .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Vikavolt, 64, 56), + .frontPic = gMonFrontPic_Vikavolt, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Vikavolt, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, .enemyMonElevation = 8, - BACK_PIC(Vikavolt, 64, 56), + .backPic = gMonBackPic_Vikavolt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Vikavolt), - ICON(Vikavolt, 0), - .footprint = gMonFootprint_Vikavolt, - LEARNSETS(Vikavolt), + .palette = gMonPalette_Vikavolt, + .shinyPalette = gMonShinyPalette_Vikavolt, + .iconSprite = gMonIcon_Vikavolt, + .iconPalIndex = 0, + FOOTPRINT(Vikavolt) + .levelUpLearnset = sVikavoltLevelUpLearnset, + .teachableLearnset = sVikavoltTeachableLearnset, + .formSpeciesIdTable = sVikavoltFormSpeciesIdTable, + }, + + [SPECIES_VIKAVOLT_TOTEM] = + { + .baseHP = 77, + .baseAttack = 70, + .baseDefense = 90, + .baseSpeed = 43, + .baseSpAttack = 145, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 225, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Vikavolt"), + .cryId = CRY_VIKAVOLT, + .natDexNum = NATIONAL_DEX_VIKAVOLT, + .categoryName = _("Stag Beetle"), + .height = 26, + .weight = 1475, + .description = gVikavoltPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Vikavolt, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Vikavolt, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + .enemyMonElevation = 8, + .backPic = gMonBackPic_Vikavolt, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Vikavolt, + .shinyPalette = gMonShinyPalette_Vikavolt, + .iconSprite = gMonIcon_Vikavolt, + .iconPalIndex = 0, + FOOTPRINT(Vikavolt) + .isTotem = TRUE, + .levelUpLearnset = sVikavoltLevelUpLearnset, + .teachableLearnset = sVikavoltTeachableLearnset, + .formSpeciesIdTable = sVikavoltFormSpeciesIdTable, }, #endif //P_FAMILY_GRUBBIN @@ -880,7 +1083,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 63, .baseSpAttack = 42, .baseSpDefense = 47, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 225, .expYield = 68, .evYield_Attack = 1, @@ -889,7 +1092,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Crabrawler"), @@ -907,17 +1110,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crabrawler, 64, 56), + .frontPic = gMonFrontPic_Crabrawler, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Crabrawler, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Crabrawler, 64, 48), + .backPic = gMonBackPic_Crabrawler, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crabrawler), - ICON(Crabrawler, 2), - .footprint = gMonFootprint_Crabrawler, - LEARNSETS(Crabrawler), + .palette = gMonPalette_Crabrawler, + .shinyPalette = gMonShinyPalette_Crabrawler, + .iconSprite = gMonIcon_Crabrawler, + .iconPalIndex = 2, + FOOTPRINT(Crabrawler) + .levelUpLearnset = sCrabrawlerLevelUpLearnset, + .teachableLearnset = sCrabrawlerTeachableLearnset, .evolutions = EVOLUTION({EVO_SPECIFIC_MAP, MAPSEC_SEAFOAM_ISLANDS, SPECIES_CRABOMINABLE}, {EVO_ITEM, ITEM_ICE_STONE, SPECIES_CRABOMINABLE}), }, @@ -930,7 +1138,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 62, .baseSpDefense = 67, - .types = { TYPE_FIGHTING, TYPE_ICE }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_ICE), .catchRate = 60, .expYield = 167, .evYield_Attack = 2, @@ -939,7 +1147,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Crabminabl"), @@ -957,133 +1165,244 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Crabominable, 64, 64), + .frontPic = gMonFrontPic_Crabominable, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Crabominable, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Crabominable, 64, 64), + .backPic = gMonBackPic_Crabominable, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crabominable), - ICON(Crabominable, 2), - .footprint = gMonFootprint_Crabominable, - LEARNSETS(Crabominable), + .palette = gMonPalette_Crabominable, + .shinyPalette = gMonShinyPalette_Crabominable, + .iconSprite = gMonIcon_Crabominable, + .iconPalIndex = 2, + FOOTPRINT(Crabominable) + .levelUpLearnset = sCrabominableLevelUpLearnset, + .teachableLearnset = sCrabominableTeachableLearnset, }, #endif //P_FAMILY_CRABRAWLER #if P_FAMILY_ORICORIO -#define ORICORIO_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 93, \ - .baseSpAttack = 98, \ - .baseSpDefense = 70, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_HONEY, \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_DANCER, ABILITY_NONE }, \ - .speciesName = _("Oricorio"), \ - .natDexNum = NATIONAL_DEX_ORICORIO, \ - .categoryName = _("Dancing"), \ - .height = 6, \ - .weight = 34, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Oricorio, \ - .backPicYOffset = 0, \ - .footprint = gMonFootprint_Oricorio, \ - LEARNSETS(Oricorio), \ - .formSpeciesIdTable = sOricorioFormSpeciesIdTable, \ - .formChangeTable = sOricorioFormChangeTable - //.backAnimId = BACK_ANIM_NONE, \ - [SPECIES_ORICORIO_BAILE] = { - ORICORIO_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_BAILE, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "It wins the hearts of its enemies\n" "with its passionate dancing and then\n" "uses the opening it creates to\n" "burn them up with blazing flames."), - FRONT_PIC(OricorioBaile, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioBaile, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Oricorio, .frontAnimId = ANIM_CONCAVE_ARC_SMALL, - BACK_PIC(OricorioBaile, 64, 64), + .backPic = gMonBackPic_OricorioBaile, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioBaile), - ICON(OricorioBaile, 0), + .palette = gMonPalette_OricorioBaile, + .shinyPalette = gMonShinyPalette_OricorioBaile, + .iconSprite = gMonIcon_OricorioBaile, + .iconPalIndex = 0, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_POM_POM] = { - ORICORIO_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_POM_POM, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "This form of Oricorio has sipped\n" "yellow nectar. It uses nimble steps to\n" "approach opponents, then knocks\n" "them out with electric punches."), - FRONT_PIC(OricorioPomPom, 56, 56), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioPomPom, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioPomPom, 64, 64), + .backPic = gMonBackPic_OricorioPomPom, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioPomPom), - ICON(OricorioPomPom, 1), + .palette = gMonPalette_OricorioPomPom, + .shinyPalette = gMonShinyPalette_OricorioPomPom, + .iconSprite = gMonIcon_OricorioPomPom, + .iconPalIndex = 1, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_PAU] = { - ORICORIO_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_PAU, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "This form of Oricorio has sipped\n" "pink nectar. It elevates its mind with\n" "the gentle steps of its dance, then\n" "unleashes its psychic energy."), - FRONT_PIC(OricorioPau, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioPau, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioPau, 64, 64), + .backPic = gMonBackPic_OricorioPau, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioPau), - ICON(OricorioPau, 1), + .palette = gMonPalette_OricorioPau, + .shinyPalette = gMonShinyPalette_OricorioPau, + .iconSprite = gMonIcon_OricorioPau, + .iconPalIndex = 1, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_SENSU] = { - ORICORIO_MISC_INFO, - .types = { TYPE_GHOST, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_SENSU, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "It charms its opponents with its\n" "refined dancing. When they let their\n" "guard down, it places a curse on\n" "them that will bring on their demise."), - FRONT_PIC(OricorioSensu, 64, 56), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioSensu, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioSensu, 64, 64), + .backPic = gMonBackPic_OricorioSensu, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioSensu), - ICON(OricorioSensu, 0), + .palette = gMonPalette_OricorioSensu, + .shinyPalette = gMonShinyPalette_OricorioSensu, + .iconSprite = gMonIcon_OricorioSensu, + .iconPalIndex = 0, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, #endif //P_FAMILY_ORICORIO @@ -1096,7 +1415,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 84, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), .catchRate = 190, .expYield = 61, .evYield_Speed = 1, @@ -1105,7 +1424,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), .abilities = { ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cutiefly"), @@ -1123,19 +1442,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cutiefly, 33, 35), + .frontPic = gMonFrontPic_Cutiefly, + .frontPicSize = MON_COORDS_SIZE(33, 35), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Cutiefly, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Cutiefly, 56, 48), + .backPic = gMonBackPic_Cutiefly, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Cutiefly), - ICON(Cutiefly, 2), - .footprint = gMonFootprint_Cutiefly, - LEARNSETS(Cutiefly), - .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}), + .palette = gMonPalette_Cutiefly, + .shinyPalette = gMonShinyPalette_Cutiefly, + .iconSprite = gMonIcon_Cutiefly, + .iconPalIndex = 2, + FOOTPRINT(Cutiefly) + .levelUpLearnset = sCutieflyLevelUpLearnset, + .teachableLearnset = sCutieflyTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}, + {EVO_NONE, 0, SPECIES_RIBOMBEE_TOTEM}), }, [SPECIES_RIBOMBEE] = @@ -1146,7 +1471,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 124, .baseSpAttack = 95, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), .catchRate = 75, .expYield = 162, .evYield_Speed = 2, @@ -1155,7 +1480,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), .abilities = { ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Ribombee"), @@ -1164,235 +1489,370 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Bee Fly"), .height = 2, .weight = 5, - .description = COMPOUND_STRING( - "Ribombee rolls up pollen into puffs.\n" - "It makes many different varieties, some\n" - "used as food and others used in battle.\n" - "They are sometimes sold as supplements."), + .description = gRibombeePokedexText, .pokemonScale = 682, .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ribombee, 32, 47), + .frontPic = gMonFrontPic_Ribombee, + .frontPicSize = MON_COORDS_SIZE(32, 47), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Ribombee, .frontAnimId = ANIM_CONVEX_DOUBLE_ARC_TWICE, .enemyMonElevation = 6, - BACK_PIC(Ribombee, 56, 48), + .backPic = gMonBackPic_Ribombee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Ribombee), - ICON(Ribombee, 2), - .footprint = gMonFootprint_Ribombee, - LEARNSETS(Ribombee), + .palette = gMonPalette_Ribombee, + .shinyPalette = gMonShinyPalette_Ribombee, + .iconSprite = gMonIcon_Ribombee, + .iconPalIndex = 2, + FOOTPRINT(Ribombee) + .levelUpLearnset = sRibombeeLevelUpLearnset, + .teachableLearnset = sRibombeeTeachableLearnset, + .formSpeciesIdTable = sRibombeeFormSpeciesIdTable, + }, + + [SPECIES_RIBOMBEE_TOTEM] = + { + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 60, + .baseSpeed = 124, + .baseSpAttack = 95, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), + .catchRate = 75, + .expYield = 162, + .evYield_Speed = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), + .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ribombee"), + .cryId = CRY_RIBOMBEE, + .natDexNum = NATIONAL_DEX_RIBOMBEE, + .categoryName = _("Bee Fly"), + .height = 4, + .weight = 20, + .description = gRibombeePokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ribombee, + .frontPicSize = MON_COORDS_SIZE(32, 47), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Ribombee, + .frontAnimId = ANIM_CONVEX_DOUBLE_ARC_TWICE, + .enemyMonElevation = 6, + .backPic = gMonBackPic_Ribombee, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + .palette = gMonPalette_Ribombee, + .shinyPalette = gMonShinyPalette_Ribombee, + .iconSprite = gMonIcon_Ribombee, + .iconPalIndex = 2, + FOOTPRINT(Ribombee) + .isTotem = TRUE, + .levelUpLearnset = sRibombeeLevelUpLearnset, + .teachableLearnset = sRibombeeTeachableLearnset, + .formSpeciesIdTable = sRibombeeFormSpeciesIdTable, }, #endif //P_FAMILY_CUTIEFLY #if P_FAMILY_ROCKRUFF -#define ROCKRUFF_MISC_INFO \ - .baseHP = 45, \ - .baseAttack = 65, \ - .baseDefense = 40, \ - .baseSpeed = 60, \ - .baseSpAttack = 30, \ - .baseSpDefense = 40, \ - .types = { TYPE_ROCK, TYPE_ROCK }, \ - .catchRate = 190, \ - .expYield = 56, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Rockruff"), \ - .cryId = CRY_ROCKRUFF, \ - .natDexNum = NATIONAL_DEX_ROCKRUFF, \ - .categoryName = _("Puppy"), \ - .height = 5, \ - .weight = 92, \ - .description = gRockruffPokedexText, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Rockruff, \ - .frontAnimId = ANIM_V_STRETCH, \ - .backPicYOffset = 7, \ - PALETTES(Rockruff), \ - ICON(Rockruff, 2), \ - .footprint = gMonFootprint_Rockruff, \ - LEARNSETS(Rockruff), \ - .formSpeciesIdTable = sRockruffFormSpeciesIdTable - [SPECIES_ROCKRUFF] = { - ROCKRUFF_MISC_INFO, + .baseHP = 45, + .baseAttack = 65, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 190, + .expYield = 56, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_STEADFAST }, - FRONT_PIC(Rockruff, 37, 39), - BACK_PIC(Rockruff, 64, 56), + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Rockruff"), + .cryId = CRY_ROCKRUFF, + .natDexNum = NATIONAL_DEX_ROCKRUFF, + .categoryName = _("Puppy"), + .height = 5, + .weight = 92, + .description = gRockruffPokedexText, + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rockruff, + .frontPicSize = MON_COORDS_SIZE(37, 39), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Rockruff, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Rockruff, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Rockruff, + .shinyPalette = gMonShinyPalette_Rockruff, + .iconSprite = gMonIcon_Rockruff, + .iconPalIndex = 2, + FOOTPRINT(Rockruff) + .levelUpLearnset = sRockruffLevelUpLearnset, + .teachableLearnset = sRockruffTeachableLearnset, + .formSpeciesIdTable = sRockruffFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 25, SPECIES_LYCANROC_MIDDAY}, {EVO_LEVEL_NIGHT, 25, SPECIES_LYCANROC_MIDNIGHT}), }, [SPECIES_ROCKRUFF_OWN_TEMPO] = { - ROCKRUFF_MISC_INFO, + .baseHP = 45, + .baseAttack = 65, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 190, + .expYield = 56, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_NONE }, - FRONT_PIC(Rockruff, 40, 48), - BACK_PIC(Rockruff, 64, 56), + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Rockruff"), + .cryId = CRY_ROCKRUFF, + .natDexNum = NATIONAL_DEX_ROCKRUFF, + .categoryName = _("Puppy"), + .height = 5, + .weight = 92, + .description = gRockruffPokedexText, + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rockruff, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Rockruff, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Rockruff, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Rockruff, + .shinyPalette = gMonShinyPalette_Rockruff, + .iconSprite = gMonIcon_Rockruff, + .iconPalIndex = 2, + FOOTPRINT(Rockruff) + .levelUpLearnset = sRockruffLevelUpLearnset, + .teachableLearnset = sRockruffTeachableLearnset, + .formSpeciesIdTable = sRockruffFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}), }, -#define LYCANROC_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_ROCK }, \ - .catchRate = 90, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Lycanroc"), \ - .natDexNum = NATIONAL_DEX_LYCANROC, \ - .categoryName = _("Wolf"), \ - .weight = 250, \ - .pokemonScale = 366, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - BACK_PIC(LycanrocMidday, 64, 56), \ - .footprint = gMonFootprint_Lycanroc, \ - .formSpeciesIdTable = sLycanrocFormSpeciesIdTable - [SPECIES_LYCANROC_MIDDAY] = { - LYCANROC_MISC_INFO, .baseHP = 75, .baseAttack = 115, .baseDefense = 65, .baseSpeed = 112, .baseSpAttack = 55, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_SAND_RUSH, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_MIDDAY, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 8, + .weight = 250, .description = COMPOUND_STRING( "It has a calm and collected\n" "demeanor. It swiftly closes in on its prey,\n" "then slices them with the rocks in\n" "its mane."), - FRONT_PIC(LycanrocMidday, 57, 53), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocMidday, + .frontPicSize = MON_COORDS_SIZE(57, 53), .frontPicYOffset = 5, .frontAnimFrames = sAnims_LycanrocMidday, .frontAnimId = ANIM_V_SHAKE, + .backPic = gMonBackPic_LycanrocMidday, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LycanrocMidday), - ICON(LycanrocMidday, 2), - LEARNSETS(LycanrocMidday), + .palette = gMonPalette_LycanrocMidday, + .shinyPalette = gMonShinyPalette_LycanrocMidday, + .iconSprite = gMonIcon_LycanrocMidday, + .iconPalIndex = 2, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocMiddayLevelUpLearnset, + .teachableLearnset = sLycanrocMiddayTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, [SPECIES_LYCANROC_MIDNIGHT] = { - LYCANROC_MISC_INFO, .baseHP = 85, .baseAttack = 115, .baseDefense = 75, .baseSpeed = 82, .baseSpAttack = 55, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_MIDNIGHT, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 11, + .weight = 250, .description = COMPOUND_STRING( "This Pokémon uses its rocky mane\n" "to slash any who approach. It will\n" "even disobey its Trainer if it dislikes\n" "the orders it was given."), - FRONT_PIC(LycanrocMidnight, 56, 61), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocMidnight, + .frontPicSize = MON_COORDS_SIZE(56, 61), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LycanrocMidnight, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + .backPic = gMonBackPic_LycanrocMidnight, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(LycanrocMidnight), - ICON(LycanrocMidnight, 0), - LEARNSETS(LycanrocMidnight), + .palette = gMonPalette_LycanrocMidnight, + .shinyPalette = gMonShinyPalette_LycanrocMidnight, + .iconSprite = gMonIcon_LycanrocMidnight, + .iconPalIndex = 0, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocMidnightLevelUpLearnset, + .teachableLearnset = sLycanrocMidnightTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, [SPECIES_LYCANROC_DUSK] = { - LYCANROC_MISC_INFO, .baseHP = 75, .baseAttack = 117, .baseDefense = 65, .baseSpeed = 110, .baseSpAttack = 55, .baseSpDefense = 65, - .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_DUSK, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 8, + .weight = 250, .description = COMPOUND_STRING( "These Pokémon have both calm and\n" "ferocious qualities. It's said that\n" "this form of Lycanroc is the most\n" "troublesome to raise."), - FRONT_PIC(LycanrocDusk, 57, 58), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocDusk, + .frontPicSize = MON_COORDS_SIZE(57, 58), .frontPicYOffset = 6, .frontAnimFrames = sAnims_LycanrocDusk, .frontAnimId = ANIM_V_SHAKE, - .backPicYOffset = 5, + .backPic = gMonBackPic_LycanrocDusk, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LycanrocDusk), - ICON(LycanrocDusk, 0), - LEARNSETS(LycanrocDusk), + .palette = gMonPalette_LycanrocDusk, + .shinyPalette = gMonShinyPalette_LycanrocDusk, + .iconSprite = gMonIcon_LycanrocDusk, + .iconPalIndex = 0, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocDuskLevelUpLearnset, + .teachableLearnset = sLycanrocDuskTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, #endif //P_FAMILY_ROCKRUFF #if P_FAMILY_WISHIWASHI -#define WISHIWASHI_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 60, \ - .expYield = 61, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_SCHOOLING, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Wishiwashi"), \ - .natDexNum = NATIONAL_DEX_WISHIWASHI, \ - .categoryName = _("Small Fry"), \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Wishiwashi, \ - LEARNSETS(Wishiwashi), \ - .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, \ - .formChangeTable = sWishiwashiFormChangeTable - [SPECIES_WISHIWASHI_SOLO] = { - WISHIWASHI_MISC_INFO, .baseHP = 45, .baseAttack = 20, .baseDefense = 20, .baseSpeed = 40, .baseSpAttack = 25, .baseSpDefense = 25, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = 61, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SCHOOLING, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wishiwashi"), .cryId = CRY_WISHIWASHI_SOLO, + .natDexNum = NATIONAL_DEX_WISHIWASHI, + .categoryName = _("Small Fry"), .height = 2, .weight = 3, .description = COMPOUND_STRING( @@ -1400,28 +1860,54 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "weak. It's by gathering up into\n" "schools that they're able to confront\n" "opponents."), - FRONT_PIC(WishiwashiSolo, 40, 24), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WishiwashiSolo, + .frontPicSize = MON_COORDS_SIZE(40, 24), .frontPicYOffset = 20, .frontAnimFrames = sAnims_WishiwashiSolo, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 12, - BACK_PIC(WishiwashiSolo, 56, 32), + .backPic = gMonBackPic_WishiwashiSolo, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WishiwashiSolo), - ICON(WishiwashiSolo, 2), + .palette = gMonPalette_WishiwashiSolo, + .shinyPalette = gMonShinyPalette_WishiwashiSolo, + .iconSprite = gMonIcon_WishiwashiSolo, + .iconPalIndex = 2, + FOOTPRINT(Wishiwashi) + .levelUpLearnset = sWishiwashiLevelUpLearnset, + .teachableLearnset = sWishiwashiTeachableLearnset, + .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, + .formChangeTable = sWishiwashiFormChangeTable, }, [SPECIES_WISHIWASHI_SCHOOL] = { - WISHIWASHI_MISC_INFO, .baseHP = 45, .baseAttack = 140, .baseDefense = 130, .baseSpeed = 30, .baseSpAttack = 140, .baseSpDefense = 135, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = 217, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SCHOOLING, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wishiwashi"), .cryId = CRY_WISHIWASHI_SCHOOL, + .natDexNum = NATIONAL_DEX_WISHIWASHI, + .categoryName = _("Small Fry"), .height = 82, .weight = 786, .description = COMPOUND_STRING( @@ -1429,15 +1915,28 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "get into formation. But if they get\n" "wounded in battle, they'll scatter\n" "and become solitary again."), - FRONT_PIC(WishiwashiSchool, 64, 64), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WishiwashiSchool, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_WishiwashiSchool, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, //Todo - BACK_PIC(WishiwashiSchool, 64, 56), + .backPic = gMonBackPic_WishiwashiSchool, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WishiwashiSchool), - ICON(WishiwashiSchool, 0), + .palette = gMonPalette_WishiwashiSchool, + .shinyPalette = gMonShinyPalette_WishiwashiSchool, + .iconSprite = gMonIcon_WishiwashiSchool, + .iconPalIndex = 0, + FOOTPRINT(Wishiwashi) + .levelUpLearnset = sWishiwashiLevelUpLearnset, + .teachableLearnset = sWishiwashiTeachableLearnset, + .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, + .formChangeTable = sWishiwashiFormChangeTable, }, #endif //P_FAMILY_WISHIWASHI @@ -1450,7 +1949,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 43, .baseSpDefense = 52, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 190, .expYield = 61, .evYield_Defense = 1, @@ -1459,7 +1958,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mareanie"), @@ -1477,17 +1976,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mareanie, 48, 40), + .frontPic = gMonFrontPic_Mareanie, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Mareanie, .frontAnimId = ANIM_GLOW_PURPLE, - BACK_PIC(Mareanie, 64, 48), + .backPic = gMonBackPic_Mareanie, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mareanie), - ICON(Mareanie, 2), - .footprint = gMonFootprint_Mareanie, - LEARNSETS(Mareanie), + .palette = gMonPalette_Mareanie, + .shinyPalette = gMonShinyPalette_Mareanie, + .iconSprite = gMonIcon_Mareanie, + .iconPalIndex = 2, + FOOTPRINT(Mareanie) + .levelUpLearnset = sMareanieLevelUpLearnset, + .teachableLearnset = sMareanieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TOXAPEX}), }, @@ -1499,7 +2003,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 53, .baseSpDefense = 142, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 75, .expYield = 173, .evYield_Defense = 2, @@ -1508,7 +2012,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Toxapex"), @@ -1526,17 +2030,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxapex, 64, 64), + .frontPic = gMonFrontPic_Toxapex, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toxapex, .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, - BACK_PIC(Toxapex, 64, 56), + .backPic = gMonBackPic_Toxapex, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toxapex), - ICON(Toxapex, 0), - .footprint = gMonFootprint_Toxapex, - LEARNSETS(Toxapex), + .palette = gMonPalette_Toxapex, + .shinyPalette = gMonShinyPalette_Toxapex, + .iconSprite = gMonIcon_Toxapex, + .iconPalIndex = 0, + FOOTPRINT(Toxapex) + .levelUpLearnset = sToxapexLevelUpLearnset, + .teachableLearnset = sToxapexTeachableLearnset, }, #endif //P_FAMILY_MAREANIE @@ -1549,7 +2058,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 190, .expYield = 77, .evYield_Attack = 1, @@ -1558,7 +2067,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mudbray"), @@ -1576,17 +2085,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Mudbray, 48, 56), + .frontPic = gMonFrontPic_Mudbray, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Mudbray, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Mudbray, 64, 56), + .backPic = gMonBackPic_Mudbray, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mudbray), - ICON(Mudbray, 2), - .footprint = gMonFootprint_Mudbray, - LEARNSETS(Mudbray), + .palette = gMonPalette_Mudbray, + .shinyPalette = gMonShinyPalette_Mudbray, + .iconSprite = gMonIcon_Mudbray, + .iconPalIndex = 2, + FOOTPRINT(Mudbray) + .levelUpLearnset = sMudbrayLevelUpLearnset, + .teachableLearnset = sMudbrayTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MUDSDALE}), }, @@ -1598,7 +2112,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 55, .baseSpDefense = 85, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, .expYield = 175, .evYield_Attack = 2, @@ -1607,7 +2121,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mudsdale"), @@ -1625,17 +2139,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Mudsdale, 64, 64), + .frontPic = gMonFrontPic_Mudsdale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Mudsdale, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Mudsdale, 64, 56), + .backPic = gMonBackPic_Mudsdale, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mudsdale), - ICON(Mudsdale, 0), - .footprint = gMonFootprint_Mudsdale, - LEARNSETS(Mudsdale), + .palette = gMonPalette_Mudsdale, + .shinyPalette = gMonShinyPalette_Mudsdale, + .iconSprite = gMonIcon_Mudsdale, + .iconPalIndex = 0, + FOOTPRINT(Mudsdale) + .levelUpLearnset = sMudsdaleLevelUpLearnset, + .teachableLearnset = sMudsdaleTeachableLearnset, }, #endif //P_FAMILY_MUDBRAY @@ -1648,7 +2167,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 27, .baseSpAttack = 40, .baseSpDefense = 72, - .types = { TYPE_WATER, TYPE_BUG }, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), .catchRate = 200, .expYield = 54, .evYield_SpDefense = 1, @@ -1657,7 +2176,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dewpider"), @@ -1675,18 +2194,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dewpider, 32, 48), + .frontPic = gMonFrontPic_Dewpider, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dewpider, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Dewpider, 40, 48), + .backPic = gMonBackPic_Dewpider, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dewpider), - ICON(Dewpider, 0), - .footprint = gMonFootprint_Dewpider, - LEARNSETS(Dewpider), - .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}), + .palette = gMonPalette_Dewpider, + .shinyPalette = gMonShinyPalette_Dewpider, + .iconSprite = gMonIcon_Dewpider, + .iconPalIndex = 0, + FOOTPRINT(Dewpider) + .levelUpLearnset = sDewpiderLevelUpLearnset, + .teachableLearnset = sDewpiderTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}, + {EVO_NONE, 0, SPECIES_ARAQUANID_TOTEM}), }, [SPECIES_ARAQUANID] = @@ -1697,7 +2222,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 132, - .types = { TYPE_WATER, TYPE_BUG }, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), .catchRate = 100, .expYield = 159, .evYield_SpDefense = 2, @@ -1706,7 +2231,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Araquanid"), @@ -1715,26 +2240,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Water Bubble"), .height = 18, .weight = 820, - .description = COMPOUND_STRING( - "Despite what its appearance suggests,\n" - "it cares for others. If it finds vulnerable,\n" - "weak Pokémon, it protectively brings\n" - "them into its water bubble."), + .description = gAraquanidPokedexText, .pokemonScale = 267, .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Araquanid, 64, 64), + .frontPic = gMonFrontPic_Araquanid, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Araquanid, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Araquanid, 64, 48), + .backPic = gMonBackPic_Araquanid, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Araquanid), - ICON(Araquanid, 2), - .footprint = gMonFootprint_Araquanid, - LEARNSETS(Araquanid), + .palette = gMonPalette_Araquanid, + .shinyPalette = gMonShinyPalette_Araquanid, + .iconSprite = gMonIcon_Araquanid, + .iconPalIndex = 2, + FOOTPRINT(Araquanid) + .levelUpLearnset = sAraquanidLevelUpLearnset, + .teachableLearnset = sAraquanidTeachableLearnset, + .formSpeciesIdTable = sAraquanidFormSpeciesIdTable, + }, + + [SPECIES_ARAQUANID_TOTEM] = + { + .baseHP = 68, + .baseAttack = 70, + .baseDefense = 92, + .baseSpeed = 42, + .baseSpAttack = 50, + .baseSpDefense = 132, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), + .catchRate = 100, + .expYield = 159, + .evYield_SpDefense = 2, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), + .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Araquanid"), + .cryId = CRY_ARAQUANID, + .natDexNum = NATIONAL_DEX_ARAQUANID, + .categoryName = _("Water Bubble"), + .height = 31, + .weight = 2175, + .description = gAraquanidPokedexText, + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Araquanid, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Araquanid, + .frontAnimId = ANIM_H_SHAKE, + .backPic = gMonBackPic_Araquanid, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Araquanid, + .shinyPalette = gMonShinyPalette_Araquanid, + .iconSprite = gMonIcon_Araquanid, + .iconPalIndex = 2, + FOOTPRINT(Araquanid) + .isTotem = TRUE, + .levelUpLearnset = sAraquanidLevelUpLearnset, + .teachableLearnset = sAraquanidTeachableLearnset, + .formSpeciesIdTable = sAraquanidFormSpeciesIdTable, }, #endif //P_FAMILY_DEWPIDER @@ -1747,7 +2325,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 35, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 50, .evYield_Attack = 1, @@ -1756,7 +2334,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Fomantis"), @@ -1774,18 +2352,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fomantis, 40, 48), + .frontPic = gMonFrontPic_Fomantis, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Fomantis, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Fomantis, 40, 56), + .backPic = gMonBackPic_Fomantis, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fomantis), - ICON(Fomantis, 1), - .footprint = gMonFootprint_Fomantis, - LEARNSETS(Fomantis), - .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}), + .palette = gMonPalette_Fomantis, + .shinyPalette = gMonShinyPalette_Fomantis, + .iconSprite = gMonIcon_Fomantis, + .iconPalIndex = 1, + FOOTPRINT(Fomantis) + .levelUpLearnset = sFomantisLevelUpLearnset, + .teachableLearnset = sFomantisTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}, + {EVO_NONE, 0, SPECIES_LURANTIS_TOTEM}), }, [SPECIES_LURANTIS] = @@ -1796,7 +2380,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 168, .evYield_Attack = 2, @@ -1805,7 +2389,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lurantis"), @@ -1814,26 +2398,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Bloom Sickle"), .height = 9, .weight = 185, - .description = COMPOUND_STRING( - "It requires a lot of effort to maintain\n" - "Lurantis's vivid coloring, but some\n" - "collectors enjoy this work and treat it\n" - "as their hobby."), + .description = gLurantisPokedexText, .pokemonScale = 338, .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lurantis, 48, 64), + .frontPic = gMonFrontPic_Lurantis, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lurantis, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Lurantis, 56, 64), + .backPic = gMonBackPic_Lurantis, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lurantis), - ICON(Lurantis, 1), - .footprint = gMonFootprint_Lurantis, - LEARNSETS(Lurantis), + .palette = gMonPalette_Lurantis, + .shinyPalette = gMonShinyPalette_Lurantis, + .iconSprite = gMonIcon_Lurantis, + .iconPalIndex = 1, + FOOTPRINT(Lurantis) + .levelUpLearnset = sLurantisLevelUpLearnset, + .teachableLearnset = sLurantisTeachableLearnset, + .formSpeciesIdTable = sLurantisFormSpeciesIdTable, + }, + + [SPECIES_LURANTIS_TOTEM] = + { + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 90, + .baseSpeed = 45, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = 168, + .evYield_Attack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Lurantis"), + .cryId = CRY_LURANTIS, + .natDexNum = NATIONAL_DEX_LURANTIS, + .categoryName = _("Bloom Sickle"), + .height = 15, + .weight = 580, + .description = gLurantisPokedexText, + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Lurantis, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Lurantis, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_Lurantis, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Lurantis, + .shinyPalette = gMonShinyPalette_Lurantis, + .iconSprite = gMonIcon_Lurantis, + .iconPalIndex = 1, + FOOTPRINT(Lurantis) + .isTotem = TRUE, + .levelUpLearnset = sLurantisLevelUpLearnset, + .teachableLearnset = sLurantisTeachableLearnset, + .formSpeciesIdTable = sLurantisFormSpeciesIdTable, }, #endif //P_FAMILY_FOMANTIS @@ -1846,7 +2483,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 15, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 190, .expYield = 57, .evYield_SpDefense = 1, @@ -1856,7 +2493,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Morelull"), @@ -1874,17 +2511,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Morelull, 24, 48), + .frontPic = gMonFrontPic_Morelull, + .frontPicSize = MON_COORDS_SIZE(24, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Morelull, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW, - BACK_PIC(Morelull, 40, 48), + .backPic = gMonBackPic_Morelull, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Morelull), - ICON(Morelull, 0), - .footprint = gMonFootprint_Morelull, - LEARNSETS(Morelull), + .palette = gMonPalette_Morelull, + .shinyPalette = gMonShinyPalette_Morelull, + .iconSprite = gMonIcon_Morelull, + .iconPalIndex = 0, + FOOTPRINT(Morelull) + .levelUpLearnset = sMorelullLevelUpLearnset, + .teachableLearnset = sMorelullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_SHIINOTIC}), }, @@ -1896,7 +2538,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 30, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 75, .expYield = 142, .evYield_SpDefense = 2, @@ -1906,7 +2548,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Shiinotic"), @@ -1924,17 +2566,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Shiinotic, 56, 56), + .frontPic = gMonFrontPic_Shiinotic, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Shiinotic, .frontAnimId = ANIM_SHAKE_GLOW_WHITE_SLOW, - BACK_PIC(Shiinotic, 64, 48), + .backPic = gMonBackPic_Shiinotic, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Shiinotic), - ICON(Shiinotic, 1), - .footprint = gMonFootprint_Shiinotic, - LEARNSETS(Shiinotic), + .palette = gMonPalette_Shiinotic, + .shinyPalette = gMonShinyPalette_Shiinotic, + .iconSprite = gMonIcon_Shiinotic, + .iconPalIndex = 1, + FOOTPRINT(Shiinotic) + .levelUpLearnset = sShiinoticLevelUpLearnset, + .teachableLearnset = sShiinoticTeachableLearnset, }, #endif //P_FAMILY_MORELULL @@ -1947,7 +2594,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 77, .baseSpAttack = 71, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), .catchRate = 120, .expYield = 64, .evYield_Speed = 1, @@ -1956,7 +2603,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Salandit"), @@ -1974,18 +2621,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salandit, 56, 40), + .frontPic = gMonFrontPic_Salandit, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Salandit, .frontAnimId = ANIM_GLOW_RED, - BACK_PIC(Salandit, 56, 40), + .backPic = gMonBackPic_Salandit, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Salandit), - ICON(Salandit, 2), - .footprint = gMonFootprint_Salandit, - LEARNSETS(Salandit), - .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}), + .palette = gMonPalette_Salandit, + .shinyPalette = gMonShinyPalette_Salandit, + .iconSprite = gMonIcon_Salandit, + .iconPalIndex = 2, + FOOTPRINT(Salandit) + .levelUpLearnset = sSalanditLevelUpLearnset, + .teachableLearnset = sSalanditTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}, + {EVO_NONE, 0, SPECIES_SALAZZLE_TOTEM}), }, [SPECIES_SALAZZLE] = @@ -1996,7 +2649,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 117, .baseSpAttack = 111, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), .catchRate = 45, .expYield = 168, .evYield_Speed = 2, @@ -2005,7 +2658,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Salazzle"), @@ -2014,26 +2667,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Toxic Lizard"), .height = 12, .weight = 222, - .description = COMPOUND_STRING( - "For some reason, only females have\n" - "been found. It creates a reverse harem of\n" - "male Salandit to live with. Its poisonous\n" - "gas is filled with pheromones."), + .description = gSalazzlePokedexText, .pokemonScale = 282, .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salazzle, 64, 64), + .frontPic = gMonFrontPic_Salazzle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Salazzle, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Salazzle, 48, 64), + .backPic = gMonBackPic_Salazzle, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Salazzle), - ICON(Salazzle, 0), - .footprint = gMonFootprint_Salazzle, - LEARNSETS(Salazzle), + .palette = gMonPalette_Salazzle, + .shinyPalette = gMonShinyPalette_Salazzle, + .iconSprite = gMonIcon_Salazzle, + .iconPalIndex = 0, + FOOTPRINT(Salazzle) + .levelUpLearnset = sSalazzleLevelUpLearnset, + .teachableLearnset = sSalazzleTeachableLearnset, + .formSpeciesIdTable = sSalanditFormSpeciesIdTable, + }, + + [SPECIES_SALAZZLE_TOTEM] = + { + .baseHP = 68, + .baseAttack = 64, + .baseDefense = 60, + .baseSpeed = 117, + .baseSpAttack = 111, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), + .catchRate = 45, + .expYield = 168, + .evYield_Speed = 2, + .itemRare = ITEM_SMOKE_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), + .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Salazzle"), + .cryId = CRY_SALAZZLE, + .natDexNum = NATIONAL_DEX_SALAZZLE, + .categoryName = _("Toxic Lizard"), + .height = 21, + .weight = 810, + .description = gSalazzlePokedexText, + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Salazzle, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Salazzle, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_Salazzle, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Salazzle, + .shinyPalette = gMonShinyPalette_Salazzle, + .iconSprite = gMonIcon_Salazzle, + .iconPalIndex = 0, + FOOTPRINT(Salazzle) + .isTotem = TRUE, + .levelUpLearnset = sSalazzleLevelUpLearnset, + .teachableLearnset = sSalazzleTeachableLearnset, + .formSpeciesIdTable = sSalanditFormSpeciesIdTable, }, #endif //P_FAMILY_SALANDIT @@ -2046,7 +2752,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 50, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), .catchRate = 140, .expYield = 68, .evYield_Attack = 1, @@ -2054,7 +2760,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Stufful"), @@ -2072,17 +2778,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stufful, 48, 48), + .frontPic = gMonFrontPic_Stufful, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Stufful, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Stufful, 56, 40), + .backPic = gMonBackPic_Stufful, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stufful), - ICON(Stufful, 0), - .footprint = gMonFootprint_Stufful, - LEARNSETS(Stufful), + .palette = gMonPalette_Stufful, + .shinyPalette = gMonShinyPalette_Stufful, + .iconSprite = gMonIcon_Stufful, + .iconPalIndex = 0, + FOOTPRINT(Stufful) + .levelUpLearnset = sStuffulLevelUpLearnset, + .teachableLearnset = sStuffulTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_BEWEAR}), }, @@ -2094,7 +2805,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), .catchRate = 70, .expYield = 175, .evYield_Attack = 2, @@ -2102,7 +2813,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Bewear"), @@ -2120,17 +2831,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Bewear, 56, 64), + .frontPic = gMonFrontPic_Bewear, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Bewear, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Bewear, 64, 64), + .backPic = gMonBackPic_Bewear, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bewear), - ICON(Bewear, 0), - .footprint = gMonFootprint_Bewear, - LEARNSETS(Bewear), + .palette = gMonPalette_Bewear, + .shinyPalette = gMonShinyPalette_Bewear, + .iconSprite = gMonIcon_Bewear, + .iconPalIndex = 0, + FOOTPRINT(Bewear) + .levelUpLearnset = sBewearLevelUpLearnset, + .teachableLearnset = sBewearTeachableLearnset, }, #endif //P_FAMILY_STUFFUL @@ -2143,7 +2859,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 32, .baseSpAttack = 30, .baseSpDefense = 38, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 235, .expYield = 42, .evYield_HP = 1, @@ -2152,7 +2868,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Bounsweet"), @@ -2170,17 +2886,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bounsweet, 32, 40), + .frontPic = gMonFrontPic_Bounsweet, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Bounsweet, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bounsweet, 48, 40), + .backPic = gMonBackPic_Bounsweet, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bounsweet), - ICON(Bounsweet, 1), - .footprint = gMonFootprint_Bounsweet, - LEARNSETS(Bounsweet), + .palette = gMonPalette_Bounsweet, + .shinyPalette = gMonShinyPalette_Bounsweet, + .iconSprite = gMonIcon_Bounsweet, + .iconPalIndex = 1, + FOOTPRINT(Bounsweet) + .levelUpLearnset = sBounsweetLevelUpLearnset, + .teachableLearnset = sBounsweetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_STEENEE}), }, @@ -2192,7 +2913,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 62, .baseSpAttack = 40, .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 120, .expYield = 102, .evYield_Speed = 2, @@ -2201,7 +2922,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .noFlip = TRUE, @@ -2220,17 +2941,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Steenee, 48, 56), + .frontPic = gMonFrontPic_Steenee, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Steenee, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Steenee, 56, 56), + .backPic = gMonBackPic_Steenee, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Steenee), - ICON(Steenee, 1), - .footprint = gMonFootprint_Steenee, - LEARNSETS(Steenee), + .palette = gMonPalette_Steenee, + .shinyPalette = gMonShinyPalette_Steenee, + .iconSprite = gMonIcon_Steenee, + .iconPalIndex = 1, + FOOTPRINT(Steenee) + .levelUpLearnset = sSteeneeLevelUpLearnset, + .teachableLearnset = sSteeneeTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_STOMP, SPECIES_TSAREENA}), }, @@ -2242,16 +2968,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 72, .baseSpAttack = 50, .baseSpDefense = 98, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 230, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 255 : 230, .evYield_Attack = 3, .itemCommon = ITEM_GRASSY_SEED, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_QUEENLY_MAJESTY, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .noFlip = TRUE, @@ -2270,17 +2996,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tsareena, 56, 64), + .frontPic = gMonFrontPic_Tsareena, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Tsareena, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Tsareena, 56, 56), + .backPic = gMonBackPic_Tsareena, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tsareena), - ICON(Tsareena, 1), - .footprint = gMonFootprint_Tsareena, - LEARNSETS(Tsareena), + .palette = gMonPalette_Tsareena, + .shinyPalette = gMonShinyPalette_Tsareena, + .iconSprite = gMonIcon_Tsareena, + .iconPalIndex = 1, + FOOTPRINT(Tsareena) + .levelUpLearnset = sTsareenaLevelUpLearnset, + .teachableLearnset = sTsareenaTeachableLearnset, }, #endif //P_FAMILY_BOUNSWEET @@ -2293,7 +3024,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 100, .baseSpAttack = 82, .baseSpDefense = 110, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 60, .expYield = 170, .evYield_SpDefense = 2, @@ -2302,7 +3033,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_FLOWER_VEIL, ABILITY_TRIAGE, ABILITY_NATURAL_CURE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -2321,18 +3052,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Comfey, 48, 48), + .frontPic = gMonFrontPic_Comfey, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Comfey, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Comfey, 64, 56), + .backPic = gMonBackPic_Comfey, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Comfey), - ICON(Comfey, 1), - .footprint = gMonFootprint_Comfey, - LEARNSETS(Comfey), + .palette = gMonPalette_Comfey, + .shinyPalette = gMonShinyPalette_Comfey, + .iconSprite = gMonIcon_Comfey, + .iconPalIndex = 1, + FOOTPRINT(Comfey) + .levelUpLearnset = sComfeyLevelUpLearnset, + .teachableLearnset = sComfeyTeachableLearnset, }, #endif //P_FAMILY_COMFEY @@ -2345,7 +3081,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 90, .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 172, .evYield_SpDefense = 2, @@ -2353,7 +3089,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_TELEPATHY, ABILITY_SYMBIOSIS }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Oranguru"), @@ -2371,17 +3107,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Oranguru, 56, 56), + .frontPic = gMonFrontPic_Oranguru, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Oranguru, .frontAnimId = ANIM_SHRINK_GROW_SLOW, - BACK_PIC(Oranguru, 64, 48), + .backPic = gMonBackPic_Oranguru, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Oranguru), - ICON(Oranguru, 0), - .footprint = gMonFootprint_Oranguru, - LEARNSETS(Oranguru), + .palette = gMonPalette_Oranguru, + .shinyPalette = gMonShinyPalette_Oranguru, + .iconSprite = gMonIcon_Oranguru, + .iconPalIndex = 0, + FOOTPRINT(Oranguru) + .levelUpLearnset = sOranguruLevelUpLearnset, + .teachableLearnset = sOranguruTeachableLearnset, }, #endif //P_FAMILY_ORANGURU @@ -2394,7 +3135,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 80, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -2402,7 +3143,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Passimian"), @@ -2420,17 +3161,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Passimian, 57, 60), + .frontPic = gMonFrontPic_Passimian, + .frontPicSize = MON_COORDS_SIZE(57, 60), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Passimian, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Passimian, 51, 52), + .backPic = gMonBackPic_Passimian, + .backPicSize = MON_COORDS_SIZE(51, 52), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Passimian), - ICON(Passimian, 1), - .footprint = gMonFootprint_Passimian, - LEARNSETS(Passimian), + .palette = gMonPalette_Passimian, + .shinyPalette = gMonShinyPalette_Passimian, + .iconSprite = gMonIcon_Passimian, + .iconPalIndex = 1, + FOOTPRINT(Passimian) + .levelUpLearnset = sPassimianLevelUpLearnset, + .teachableLearnset = sPassimianTeachableLearnset, }, #endif //P_FAMILY_PASSIMIAN @@ -2443,7 +3189,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 80, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 90, .expYield = 46, .evYield_Speed = 1, @@ -2451,8 +3197,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_WIMP_OUT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), + .abilities = { ABILITY_WIMP_OUT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Wimpod"), .cryId = CRY_WIMPOD, @@ -2469,17 +3215,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wimpod, 40, 40), + .frontPic = gMonFrontPic_Wimpod, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Wimpod, .frontAnimId = ANIM_V_SHAKE_H_SLIDE_FAST, - BACK_PIC(Wimpod, 64, 48), + .backPic = gMonBackPic_Wimpod, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wimpod), - ICON(Wimpod, 2), - .footprint = gMonFootprint_Wimpod, - LEARNSETS(Wimpod), + .palette = gMonPalette_Wimpod, + .shinyPalette = gMonShinyPalette_Wimpod, + .iconSprite = gMonIcon_Wimpod, + .iconPalIndex = 2, + FOOTPRINT(Wimpod) + .levelUpLearnset = sWimpodLevelUpLearnset, + .teachableLearnset = sWimpodTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GOLISOPOD}), }, @@ -2491,7 +3242,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 45, .expYield = 186, .evYield_Defense = 2, @@ -2499,8 +3250,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_EMERGENCY_EXIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), + .abilities = { ABILITY_EMERGENCY_EXIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Golisopod"), .cryId = CRY_GOLISOPOD, @@ -2517,17 +3268,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Golisopod, 64, 64), + .frontPic = gMonFrontPic_Golisopod, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Golisopod, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Golisopod, 64, 48), + .backPic = gMonBackPic_Golisopod, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Golisopod), - ICON(Golisopod, 2), - .footprint = gMonFootprint_Golisopod, - LEARNSETS(Golisopod), + .palette = gMonPalette_Golisopod, + .shinyPalette = gMonShinyPalette_Golisopod, + .iconSprite = gMonIcon_Golisopod, + .iconPalIndex = 2, + FOOTPRINT(Golisopod) + .levelUpLearnset = sGolisopodLevelUpLearnset, + .teachableLearnset = sGolisopodTeachableLearnset, }, #endif //P_FAMILY_WIMPOD @@ -2540,7 +3296,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 15, .baseSpAttack = 70, .baseSpDefense = 45, - .types = { TYPE_GHOST, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GROUND), .catchRate = 140, .expYield = 64, .evYield_Defense = 1, @@ -2549,7 +3305,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sandygast"), @@ -2567,17 +3323,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandygast, 48, 48), + .frontPic = gMonFrontPic_Sandygast, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sandygast, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Sandygast, 40, 48), + .backPic = gMonBackPic_Sandygast, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sandygast), - ICON(Sandygast, 1), - .footprint = gMonFootprint_Sandygast, - LEARNSETS(Sandygast), + .palette = gMonPalette_Sandygast, + .shinyPalette = gMonShinyPalette_Sandygast, + .iconSprite = gMonIcon_Sandygast, + .iconPalIndex = 1, + FOOTPRINT(Sandygast) + .levelUpLearnset = sSandygastLevelUpLearnset, + .teachableLearnset = sSandygastTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_PALOSSAND}), }, @@ -2589,7 +3350,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 100, .baseSpDefense = 75, - .types = { TYPE_GHOST, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GROUND), .catchRate = 60, .expYield = 168, .evYield_Defense = 2, @@ -2598,7 +3359,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Palossand"), @@ -2616,17 +3377,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Palossand, 64, 64), + .frontPic = gMonFrontPic_Palossand, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Palossand, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Palossand, 64, 64), + .backPic = gMonBackPic_Palossand, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Palossand), - ICON(Palossand, 2), - .footprint = gMonFootprint_Palossand, - LEARNSETS(Palossand), + .palette = gMonPalette_Palossand, + .shinyPalette = gMonShinyPalette_Palossand, + .iconSprite = gMonIcon_Palossand, + .iconPalIndex = 2, + FOOTPRINT(Palossand) + .levelUpLearnset = sPalossandLevelUpLearnset, + .teachableLearnset = sPalossandTeachableLearnset, }, #endif //P_FAMILY_SANDYGAST @@ -2639,7 +3405,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 5, .baseSpAttack = 30, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, .expYield = 144, .evYield_SpDefense = 2, @@ -2647,7 +3413,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Pyukumuku"), @@ -2665,17 +3431,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pyukumuku, 40, 40), + .frontPic = gMonFrontPic_Pyukumuku, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Pyukumuku, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pyukumuku, 48, 32), + .backPic = gMonBackPic_Pyukumuku, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pyukumuku), - ICON(Pyukumuku, 0), - .footprint = gMonFootprint_Pyukumuku, - LEARNSETS(Pyukumuku), + .palette = gMonPalette_Pyukumuku, + .shinyPalette = gMonShinyPalette_Pyukumuku, + .iconSprite = gMonIcon_Pyukumuku, + .iconPalIndex = 0, + FOOTPRINT(Pyukumuku) + .levelUpLearnset = sPyukumukuLevelUpLearnset, + .teachableLearnset = sPyukumukuTeachableLearnset, }, #endif //P_FAMILY_PYUKUMUKU @@ -2688,7 +3459,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 59, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 3, .expYield = 107, .evYield_HP = 2, @@ -2696,10 +3467,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Type: Null"), .cryId = CRY_TYPE_NULL, .natDexNum = NATIONAL_DEX_TYPE_NULL, @@ -2715,115 +3485,127 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(TypeNull, 64, 64), + .frontPic = gMonFrontPic_TypeNull, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TypeNull, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(TypeNull, 56, 64), + .backPic = gMonBackPic_TypeNull, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TypeNull), - ICON(TypeNull, 0), - .footprint = gMonFootprint_Type_Null, - LEARNSETS(TypeNull), + .palette = gMonPalette_TypeNull, + .shinyPalette = gMonShinyPalette_TypeNull, + .iconSprite = gMonIcon_TypeNull, + .iconPalIndex = 0, + FOOTPRINT(Type_Null) + .isLegendary = TRUE, + .levelUpLearnset = sTypeNullLevelUpLearnset, + .teachableLearnset = sTypeNullTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}), }, -#define SILVALLY_SPECIES_INFO(type, palette) \ - { \ - .baseHP = 95, \ - .baseAttack = 95, \ - .baseDefense = 95, \ - .baseSpeed = 95, \ - .baseSpAttack = 95, \ - .baseSpDefense = 95, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 257, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Silvally"), \ - .cryId = CRY_SILVALLY, \ - .natDexNum = NATIONAL_DEX_SILVALLY, \ - .categoryName = _("Synthetic"), \ - .height = 23, \ - .weight = 1005, \ - .description = (type == TYPE_NORMAL \ - ? gSilvallyNormalPokedexText \ - : gSilvallyMemoryPokedexText), \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 342, \ - .trainerOffset = 7, \ - FRONT_PIC(Silvally, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Silvally, \ - .frontAnimId = ANIM_V_SHAKE, \ - BACK_PIC(Silvally, 56, 64), \ - .backPicYOffset = 0, \ - PALETTES(palette), \ - ICON(Silvally, 0), \ - .footprint = gMonFootprint_Silvally, \ - LEARNSETS(Silvally), \ - .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ - .formChangeTable = sSilvallyFormChangeTable, \ - } - //.backAnimId = BACK_ANIM_NONE, +#define SILVALLY_SPECIES_INFO(type, _palette) \ + { \ + .baseHP = 95, \ + .baseAttack = 95, \ + .baseDefense = 95, \ + .baseSpeed = 95, \ + .baseSpAttack = 95, \ + .baseSpDefense = 95, \ + .types = MON_TYPES(type), \ + .catchRate = 3, \ + .expYield = 257, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .isLegendary = TRUE, \ + .speciesName = _("Silvally"), \ + .cryId = CRY_SILVALLY, \ + .natDexNum = NATIONAL_DEX_SILVALLY, \ + .categoryName = _("Synthetic"), \ + .height = 23, \ + .weight = 1005, \ + .description = (type == TYPE_NORMAL \ + ? gSilvallyNormalPokedexText \ + : gSilvallyMemoryPokedexText), \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 342, \ + .trainerOffset = 7, \ + .frontPic = gMonFrontPic_Silvally, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Silvally, \ + .frontAnimId = ANIM_V_SHAKE, \ + .backPic = gMonBackPic_Silvally, \ + .backPicSize = MON_COORDS_SIZE(56, 64), \ + .backPicYOffset = 0, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_Silvally##_palette, \ + .shinyPalette = gMonShinyPalette_Silvally##_palette, \ + .iconSprite = gMonIcon_Silvally, \ + .iconPalIndex = 0, \ + FOOTPRINT(Silvally) \ + .levelUpLearnset = sSilvallyLevelUpLearnset, \ + .teachableLearnset = sSilvallyTeachableLearnset, \ + .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ + .formChangeTable = sSilvallyFormChangeTable, \ + } - [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL, SilvallyNormal), - [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING, SilvallyFighting), - [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING, SilvallyFlying), - [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON, SilvallyPoison), - [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND, SilvallyGround), - [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK, SilvallyRock), - [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG, SilvallyBug), - [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST, SilvallyGhost), - [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL, SilvallySteel), - [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE, SilvallyFire), - [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER, SilvallyWater), - [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS, SilvallyGrass), - [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC, SilvallyElectric), - [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC, SilvallyPsychic), - [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE, SilvallyIce), - [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON, SilvallyDragon), - [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK, SilvallyDark), - [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY, SilvallyFairy), + [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL, Normal), + [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING, Fighting), + [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING, Flying), + [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON, Poison), + [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND, Ground), + [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK, Rock), + [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG, Bug), + [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST, Ghost), + [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL, Steel), + [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE, Fire), + [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER, Water), + [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS, Grass), + [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC, Electric), + [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC, Psychic), + [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE, Ice), + [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON, Dragon), + [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK, Dark), + [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY, Fairy), #endif //P_FAMILY_TYPE_NULL #if P_FAMILY_MINIOR -#define MINIOR_MISC_INFO(color) \ - .types = { TYPE_ROCK, TYPE_FLYING }, \ - .catchRate = 30, \ - .expYield = 154, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SHIELDS_DOWN, ABILITY_NONE }, \ - .bodyColor = color, \ - .noFlip = TRUE, \ - .speciesName = _("Minior"), \ - .cryId = CRY_MINIOR, \ - .natDexNum = NATIONAL_DEX_MINIOR, \ - .categoryName = _("Meteor"), \ - .height = 3, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Minior, \ - LEARNSETS(Minior), \ +#define MINIOR_MISC_INFO(color) \ + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), \ + .catchRate = 30, \ + .expYield = 154, \ + .evYield_Defense = 1, \ + .evYield_SpDefense = 1, \ + .itemRare = ITEM_STAR_PIECE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), \ + .abilities = { ABILITY_SHIELDS_DOWN, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = color, \ + .noFlip = TRUE, \ + .speciesName = _("Minior"), \ + .cryId = CRY_MINIOR, \ + .natDexNum = NATIONAL_DEX_MINIOR, \ + .categoryName = _("Meteor"), \ + .height = 3, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FOOTPRINT(Minior) \ + .levelUpLearnset = sMiniorLevelUpLearnset, \ + .teachableLearnset = sMiniorTeachableLearnset, \ .formSpeciesIdTable = sMiniorFormSpeciesIdTable #define MINIOR_METEOR_SPECIES_INFO(Form) \ @@ -2835,19 +3617,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpAttack = 60, \ .baseSpDefense = 100, \ .weight = 400, \ - FRONT_PIC(MiniorMeteor, 48, 40), \ + .frontPic = gMonFrontPic_MiniorMeteor, \ + .frontPicSize = MON_COORDS_SIZE(48, 40), \ .frontPicYOffset = 14, \ .frontAnimFrames = sAnims_MiniorMeteor, \ .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ .enemyMonElevation = 17, \ - BACK_PIC(MiniorMeteor, 56, 40), \ + .backPic = gMonBackPic_MiniorMeteor, \ + .backPicSize = MON_COORDS_SIZE(56, 40), \ .backPicYOffset = 14, \ - PALETTES(MiniorMeteor), \ - ICON(MiniorMeteor, 0), \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_MiniorMeteor, \ + .shinyPalette = gMonShinyPalette_MiniorMeteor, \ + .iconSprite = gMonIcon_MiniorMeteor, \ + .iconPalIndex = 0, \ .formChangeTable = sMinior ##Form##FormChangeTable, \ MINIOR_MISC_INFO(BODY_COLOR_BROWN), \ } - //.backAnimId = BACK_ANIM_NONE, #define MINIOR_CORE_SPECIES_INFO(Form, color, iconPal) \ { \ @@ -2859,20 +3645,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpDefense = 60, \ .weight = 3, \ .description = gMiniorCorePokedexText, \ - FRONT_PIC(MiniorCore, 48, 40), \ + .frontPic = gMonFrontPic_MiniorCore, \ + .frontPicSize = MON_COORDS_SIZE(48, 40), \ .frontPicYOffset = 16, \ .frontAnimFrames = sAnims_MiniorMeteor, \ .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ .enemyMonElevation = 17, \ - BACK_PIC(MiniorCore, 56, 40), \ + .backPic = gMonBackPic_MiniorCore, \ + .backPicSize = MON_COORDS_SIZE(56, 40), \ .backPicYOffset = 15, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ .palette = gMonPalette_MiniorCore##Form, \ .shinyPalette = gMonShinyPalette_MiniorCore, \ - ICON(MiniorCore##Form, iconPal), \ + .iconSprite = gMonIcon_MiniorCore##Form, \ + .iconPalIndex = iconPal, \ .formChangeTable = sMinior ##Form##FormChangeTable, \ MINIOR_MISC_INFO(color), \ } - //.backAnimId = BACK_ANIM_NONE, [SPECIES_MINIOR_METEOR_RED] = MINIOR_METEOR_SPECIES_INFO(Red), [SPECIES_MINIOR_METEOR_ORANGE] = MINIOR_METEOR_SPECIES_INFO(Orange), @@ -2899,7 +3688,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 75, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2907,8 +3696,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_COMATOSE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_COMATOSE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Komala"), .cryId = CRY_KOMALA, @@ -2925,17 +3714,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Komala, 48, 40), + .frontPic = gMonFrontPic_Komala, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Komala, .frontAnimId = ANIM_H_DIP, - BACK_PIC(Komala, 64, 48), + .backPic = gMonBackPic_Komala, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Komala), - ICON(Komala, 2), - .footprint = gMonFootprint_Komala, - LEARNSETS(Komala), + .palette = gMonPalette_Komala, + .shinyPalette = gMonShinyPalette_Komala, + .iconSprite = gMonIcon_Komala, + .iconPalIndex = 2, + FOOTPRINT(Komala) + .levelUpLearnset = sKomalaLevelUpLearnset, + .teachableLearnset = sKomalaTeachableLearnset, }, #endif //P_FAMILY_KOMALA @@ -2948,7 +3742,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 91, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), .catchRate = 70, .expYield = 170, .evYield_Defense = 2, @@ -2957,8 +3751,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Turtonator"), .cryId = CRY_TURTONATOR, @@ -2975,17 +3769,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Turtonator, 64, 64), + .frontPic = gMonFrontPic_Turtonator, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Turtonator, .frontAnimId = ANIM_SHAKE_GLOW_RED, - BACK_PIC(Turtonator, 64, 56), + .backPic = gMonBackPic_Turtonator, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Turtonator), - ICON(Turtonator, 0), - .footprint = gMonFootprint_Turtonator, - LEARNSETS(Turtonator), + .palette = gMonPalette_Turtonator, + .shinyPalette = gMonShinyPalette_Turtonator, + .iconSprite = gMonIcon_Turtonator, + .iconPalIndex = 0, + FOOTPRINT(Turtonator) + .levelUpLearnset = sTurtonatorLevelUpLearnset, + .teachableLearnset = sTurtonatorTeachableLearnset, }, #endif //P_FAMILY_TURTONATOR @@ -2998,7 +3797,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 96, .baseSpAttack = 40, .baseSpDefense = 73, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 180, .expYield = 152, .evYield_Attack = 2, @@ -3007,7 +3806,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_IRON_BARBS, ABILITY_LIGHTNING_ROD, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Togedemaru"), @@ -3016,100 +3815,287 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Roly-Poly"), .height = 3, .weight = 33, - .description = COMPOUND_STRING( - "The spiny fur on its back is normally\n" - "at rest. When this Pokémon becomes\n" - "agitated, its fur stands on end and stabs\n" - "into its attackers."), + .description = gTogedemaruPokedexText, .pokemonScale = 530, .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togedemaru, 40, 40), + .frontPic = gMonFrontPic_Togedemaru, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Togedemaru, .frontAnimId = ANIM_FLASH_YELLOW, - BACK_PIC(Togedemaru, 64, 48), + .backPic = gMonBackPic_Togedemaru, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Togedemaru), - ICON(Togedemaru, 2), - .footprint = gMonFootprint_Togedemaru, - LEARNSETS(Togedemaru), + .palette = gMonPalette_Togedemaru, + .shinyPalette = gMonShinyPalette_Togedemaru, + .iconSprite = gMonIcon_Togedemaru, + .iconPalIndex = 2, + FOOTPRINT(Togedemaru) + .levelUpLearnset = sTogedemaruLevelUpLearnset, + .teachableLearnset = sTogedemaruTeachableLearnset, + .formSpeciesIdTable = sTogedemaruFormSpeciesIdTable, + }, + + [SPECIES_TOGEDEMARU_TOTEM] = + { + .baseHP = 65, + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 96, + .baseSpAttack = 40, + .baseSpDefense = 73, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), + .catchRate = 180, + .expYield = 152, + .evYield_Attack = 2, + .itemRare = ITEM_ELECTRIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Togedemaru"), + .cryId = CRY_TOGEDEMARU, + .natDexNum = NATIONAL_DEX_TOGEDEMARU, + .categoryName = _("Roly-Poly"), + .height = 6, + .weight = 130, + .description = gTogedemaruPokedexText, + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Togedemaru, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Togedemaru, + .frontAnimId = ANIM_FLASH_YELLOW, + .backPic = gMonBackPic_Togedemaru, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_GROW_STUTTER, + .palette = gMonPalette_Togedemaru, + .shinyPalette = gMonShinyPalette_Togedemaru, + .iconSprite = gMonIcon_Togedemaru, + .iconPalIndex = 2, + FOOTPRINT(Togedemaru) + .isTotem = TRUE, + .levelUpLearnset = sTogedemaruLevelUpLearnset, + .teachableLearnset = sTogedemaruTeachableLearnset, + .formSpeciesIdTable = sTogedemaruFormSpeciesIdTable, }, #endif //P_FAMILY_TOGEDEMARU #if P_FAMILY_MIMIKYU -#define MIMIKYU_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 90, \ - .baseDefense = 80, \ - .baseSpeed = 96, \ - .baseSpAttack = 50, \ - .baseSpDefense = 105, \ - .types = { TYPE_GHOST, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpDefense = 2, \ - .itemRare = ITEM_CHESTO_BERRY, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_DISGUISE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Mimikyu"), \ - .cryId = CRY_MIMIKYU, \ - .natDexNum = NATIONAL_DEX_MIMIKYU, \ - .categoryName = _("Disguise"), \ - .height = 2, \ - .weight = 7, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Mimikyu, \ - LEARNSETS(Mimikyu), \ - .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, \ - .formChangeTable = sMimikyuFormChangeTable - [SPECIES_MIMIKYU_DISGUISED] = { - MIMIKYU_MISC_INFO, - .description = COMPOUND_STRING( - "A lonely Pokémon, it hides its terrifying\n" - "appearance beneath an old rag so it can\n" - "get closer to people and other Pokémon.\n" - "Its actual appearance is unknown."), - FRONT_PIC(MimikyuDisguised, 48, 40), + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 2, + .weight = 7, + .description = gMimikyuDisguisedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuDisguised, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_MimikyuDisguised, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(MimikyuDisguised, 56, 56), + .backPic = gMonBackPic_MimikyuDisguised, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MimikyuDisguised), - ICON(MimikyuDisguised, 1), + .palette = gMonPalette_MimikyuDisguised, + .shinyPalette = gMonShinyPalette_MimikyuDisguised, + .iconSprite = gMonIcon_MimikyuDisguised, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuFormChangeTable, }, [SPECIES_MIMIKYU_BUSTED] = { - MIMIKYU_MISC_INFO, - .description = COMPOUND_STRING( - "After going to all the effort of\n" - "disguising itself, its neck was\n" - "broken. Whatever is inside is probably\n" - "unharmed, but it's still feeling sad."), - FRONT_PIC(MimikyuBusted, 48, 40), + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 2, + .weight = 7, + .description = gMimikyuBustedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuBusted, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_MimikyuBusted, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(MimikyuBusted, 64, 40), + .backPic = gMonBackPic_MimikyuBusted, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MimikyuBusted), - ICON(MimikyuBusted, 1), + .palette = gMonPalette_MimikyuBusted, + .shinyPalette = gMonShinyPalette_MimikyuBusted, + .iconSprite = gMonIcon_MimikyuBusted, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuFormChangeTable, + }, + + [SPECIES_MIMIKYU_TOTEM_DISGUISED] = + { + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 24, + .weight = 28, + .description = gMimikyuDisguisedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuDisguised, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuDisguised, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MimikyuDisguised, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MimikyuDisguised, + .shinyPalette = gMonShinyPalette_MimikyuDisguised, + .iconSprite = gMonIcon_MimikyuDisguised, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .isTotem = TRUE, + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuTotemFormChangeTable, + }, + + [SPECIES_MIMIKYU_TOTEM_BUSTED] = + { + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 24, + .weight = 28, + .description = gMimikyuBustedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuBusted, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuBusted, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MimikyuBusted, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MimikyuBusted, + .shinyPalette = gMonShinyPalette_MimikyuBusted, + .iconSprite = gMonIcon_MimikyuBusted, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .isTotem = TRUE, + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuTotemFormChangeTable, }, #endif //P_FAMILY_MIMIKYU @@ -3122,7 +4108,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 92, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 80, .expYield = 166, .evYield_Attack = 2, @@ -3131,7 +4117,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_DAZZLING, ABILITY_STRONG_JAW, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Bruxish"), @@ -3149,17 +4135,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bruxish, 56, 40), + .frontPic = gMonFrontPic_Bruxish, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Bruxish, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Bruxish, 64, 48), + .backPic = gMonBackPic_Bruxish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bruxish), - ICON(Bruxish, 0), - .footprint = gMonFootprint_Bruxish, - LEARNSETS(Bruxish), + .palette = gMonPalette_Bruxish, + .shinyPalette = gMonShinyPalette_Bruxish, + .iconSprite = gMonIcon_Bruxish, + .iconPalIndex = 0, + FOOTPRINT(Bruxish) + .levelUpLearnset = sBruxishLevelUpLearnset, + .teachableLearnset = sBruxishTeachableLearnset, }, #endif //P_FAMILY_BRUXISH @@ -3172,7 +4163,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 135, .baseSpDefense = 91, - .types = { TYPE_NORMAL, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_DRAGON), .catchRate = 70, .expYield = 170, .evYield_SpAttack = 2, @@ -3181,7 +4172,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Drampa"), @@ -3199,17 +4190,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drampa, 64, 64), + .frontPic = gMonFrontPic_Drampa, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Drampa, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Drampa, 64, 56), + .backPic = gMonBackPic_Drampa, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Drampa), - ICON(Drampa, 0), - .footprint = gMonFootprint_Drampa, - LEARNSETS(Drampa), + .palette = gMonPalette_Drampa, + .shinyPalette = gMonShinyPalette_Drampa, + .iconSprite = gMonIcon_Drampa, + .iconPalIndex = 0, + FOOTPRINT(Drampa) + .levelUpLearnset = sDrampaLevelUpLearnset, + .teachableLearnset = sDrampaTeachableLearnset, }, #endif //P_FAMILY_DRAMPA @@ -3222,7 +4218,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 86, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 25, .expYield = 181, .evYield_Attack = 2, @@ -3230,8 +4226,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_STEELWORKER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEELWORKER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, .speciesName = _("Dhelmise"), @@ -3249,18 +4245,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 510, .trainerOffset = 11, - FRONT_PIC(Dhelmise, 48, 64), + .frontPic = gMonFrontPic_Dhelmise, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Dhelmise, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 2, - BACK_PIC(Dhelmise, 64, 64), + .backPic = gMonBackPic_Dhelmise, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dhelmise), - ICON(Dhelmise, 1), - .footprint = gMonFootprint_Dhelmise, - LEARNSETS(Dhelmise), + .palette = gMonPalette_Dhelmise, + .shinyPalette = gMonShinyPalette_Dhelmise, + .iconSprite = gMonIcon_Dhelmise, + .iconPalIndex = 1, + FOOTPRINT(Dhelmise) + .levelUpLearnset = sDhelmiseLevelUpLearnset, + .teachableLearnset = sDhelmiseTeachableLearnset, }, #endif //P_FAMILY_DHELMISE @@ -3273,7 +4274,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_Defense = 1, @@ -3282,7 +4283,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Jangmo-o"), @@ -3300,17 +4301,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(JangmoO, 36, 43), + .frontPic = gMonFrontPic_JangmoO, + .frontPicSize = MON_COORDS_SIZE(36, 43), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jangmo_O, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(JangmoO, 42, 56), + .backPic = gMonBackPic_JangmoO, + .backPicSize = MON_COORDS_SIZE(42, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(JangmoO), - ICON(JangmoO, 2), - .footprint = gMonFootprint_JangmoO, - LEARNSETS(JangmoO), + .palette = gMonPalette_JangmoO, + .shinyPalette = gMonShinyPalette_JangmoO, + .iconSprite = gMonIcon_JangmoO, + .iconPalIndex = 2, + FOOTPRINT(JangmoO) + .levelUpLearnset = sJangmoOLevelUpLearnset, + .teachableLearnset = sJangmoOTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HAKAMO_O}), }, @@ -3322,7 +4328,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), .catchRate = 45, .expYield = 147, .evYield_Defense = 2, @@ -3331,7 +4337,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Hakamo-o"), @@ -3349,18 +4355,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HakamoO, 53, 61), + .frontPic = gMonFrontPic_HakamoO, + .frontPicSize = MON_COORDS_SIZE(53, 61), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Hakamo_O, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(HakamoO, 49, 56), + .backPic = gMonBackPic_HakamoO, + .backPicSize = MON_COORDS_SIZE(49, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(HakamoO), - ICON(HakamoO, 2), - .footprint = gMonFootprint_HakamoO, - LEARNSETS(HakamoO), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}), + .palette = gMonPalette_HakamoO, + .shinyPalette = gMonShinyPalette_HakamoO, + .iconSprite = gMonIcon_HakamoO, + .iconPalIndex = 2, + FOOTPRINT(HakamoO) + .levelUpLearnset = sHakamoOLevelUpLearnset, + .teachableLearnset = sHakamoOTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}, + {EVO_NONE, 0, SPECIES_KOMMO_O_TOTEM}), }, [SPECIES_KOMMO_O] = @@ -3371,16 +4383,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 85, .baseSpAttack = 100, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), .catchRate = 45, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Defense = 3, .itemCommon = ITEM_RAZOR_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Kommo-o"), @@ -3389,26 +4401,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Scaly"), .height = 16, .weight = 782, - .description = COMPOUND_STRING( - "Its rigid scales function as offense and\n" - "defense. In the past, its scales were\n" - "processed and used to make weapons\n" - "and other valuable commodities."), + .description = gKommoOPokedexText, .pokemonScale = 259, .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(KommoO, 63, 63), + .frontPic = gMonFrontPic_KommoO, + .frontPicSize = MON_COORDS_SIZE(63, 63), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kommo_O, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(KommoO, 60, 60), + .backPic = gMonBackPic_KommoO, + .backPicSize = MON_COORDS_SIZE(60, 60), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(KommoO), - ICON(KommoO, 2), - .footprint = gMonFootprint_KommoO, - LEARNSETS(KommoO), + .palette = gMonPalette_KommoO, + .shinyPalette = gMonShinyPalette_KommoO, + .iconSprite = gMonIcon_KommoO, + .iconPalIndex = 2, + FOOTPRINT(KommoO) + .levelUpLearnset = sKommoOLevelUpLearnset, + .teachableLearnset = sKommoOTeachableLearnset, + .formSpeciesIdTable = sKommoOFormSpeciesIdTable, + }, + + [SPECIES_KOMMO_O_TOTEM] = + { + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 125, + .baseSpeed = 85, + .baseSpAttack = 100, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Defense = 3, + .itemCommon = ITEM_RAZOR_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Kommo-o"), + .cryId = CRY_KOMMO_O, + .natDexNum = NATIONAL_DEX_KOMMO_O, + .categoryName = _("Scaly"), + .height = 24, + .weight = 2075, + .description = gKommoOPokedexText, + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_KommoO, + .frontPicSize = MON_COORDS_SIZE(63, 63), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Kommo_O, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + .backPic = gMonBackPic_KommoO, + .backPicSize = MON_COORDS_SIZE(60, 60), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_KommoO, + .shinyPalette = gMonShinyPalette_KommoO, + .iconSprite = gMonIcon_KommoO, + .iconPalIndex = 2, + FOOTPRINT(KommoO) + .isTotem = TRUE, + .levelUpLearnset = sKommoOLevelUpLearnset, + .teachableLearnset = sKommoOTeachableLearnset, + .formSpeciesIdTable = sKommoOFormSpeciesIdTable, }, #endif //P_FAMILY_JANGMO_O @@ -3421,18 +4486,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 130, .baseSpAttack = 95, .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Tapu Koko"), .cryId = CRY_TAPU_KOKO, .natDexNum = NATIONAL_DEX_TAPU_KOKO, @@ -3448,18 +4512,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(TapuKoko, 64, 64), + .frontPic = gMonFrontPic_TapuKoko, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_TapuKoko, .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, .enemyMonElevation = 9, - BACK_PIC(TapuKoko, 64, 64), + .backPic = gMonBackPic_TapuKoko, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuKoko), - ICON(TapuKoko, 0), - .footprint = gMonFootprint_Tapu_Koko, - LEARNSETS(TapuKoko), + .palette = gMonPalette_TapuKoko, + .shinyPalette = gMonShinyPalette_TapuKoko, + .iconSprite = gMonIcon_TapuKoko, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Koko) + .isLegendary = TRUE, + .levelUpLearnset = sTapuKokoLevelUpLearnset, + .teachableLearnset = sTapuKokoTeachableLearnset, }, #endif //P_FAMILY_TAPU_KOKO @@ -3472,18 +4542,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 95, .baseSpAttack = 130, .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, - .isLegendary = TRUE, .speciesName = _("Tapu Lele"), .cryId = CRY_TAPU_LELE, .natDexNum = NATIONAL_DEX_TAPU_LELE, @@ -3499,18 +4568,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TapuLele, 48, 56), + .frontPic = gMonFrontPic_TapuLele, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_TapuLele, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 8, - BACK_PIC(TapuLele, 56, 56), + .backPic = gMonBackPic_TapuLele, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuLele), - ICON(TapuLele, 0), - .footprint = gMonFootprint_Tapu_Lele, - LEARNSETS(TapuLele), + .palette = gMonPalette_TapuLele, + .shinyPalette = gMonShinyPalette_TapuLele, + .iconSprite = gMonIcon_TapuLele, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Lele) + .isLegendary = TRUE, + .levelUpLearnset = sTapuLeleLevelUpLearnset, + .teachableLearnset = sTapuLeleTeachableLearnset, }, #endif //P_FAMILY_TAPU_LELE @@ -3523,18 +4598,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 75, .baseSpAttack = 85, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Tapu Bulu"), .cryId = CRY_TAPU_BULU, .natDexNum = NATIONAL_DEX_TAPU_BULU, @@ -3550,18 +4624,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(TapuBulu, 56, 64), + .frontPic = gMonFrontPic_TapuBulu, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TapuBulu, .frontAnimId = ANIM_V_SHAKE_TWICE, .enemyMonElevation = 5, - BACK_PIC(TapuBulu, 64, 64), + .backPic = gMonBackPic_TapuBulu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuBulu), - ICON(TapuBulu, 2), - .footprint = gMonFootprint_Tapu_Bulu, - LEARNSETS(TapuBulu), + .palette = gMonPalette_TapuBulu, + .shinyPalette = gMonShinyPalette_TapuBulu, + .iconSprite = gMonIcon_TapuBulu, + .iconPalIndex = 2, + FOOTPRINT(Tapu_Bulu) + .isLegendary = TRUE, + .levelUpLearnset = sTapuBuluLevelUpLearnset, + .teachableLearnset = sTapuBuluTeachableLearnset, }, #endif //P_FAMILY_TAPU_BULU @@ -3574,18 +4654,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, .speciesName = _("Tapu Fini"), .cryId = CRY_TAPU_FINI, .natDexNum = NATIONAL_DEX_TAPU_FINI, @@ -3601,19 +4680,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TapuFini, 56, 64), + .frontPic = gMonFrontPic_TapuFini, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TapuFini, .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, .frontAnimDelay = 5, .enemyMonElevation = 6, - BACK_PIC(TapuFini, 64, 56), + .backPic = gMonBackPic_TapuFini, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuFini), - ICON(TapuFini, 0), - .footprint = gMonFootprint_Tapu_Fini, - LEARNSETS(TapuFini), + .palette = gMonPalette_TapuFini, + .shinyPalette = gMonShinyPalette_TapuFini, + .iconSprite = gMonIcon_TapuFini, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Fini) + .isLegendary = TRUE, + .levelUpLearnset = sTapuFiniLevelUpLearnset, + .teachableLearnset = sTapuFiniTeachableLearnset, }, #endif //P_FAMILY_TAPU_FINI @@ -3626,7 +4711,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 37, .baseSpAttack = 29, .baseSpDefense = 31, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, .expYield = 40, .evYield_HP = 1, @@ -3634,10 +4719,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_UNAWARE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNAWARE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cosmog"), .cryId = CRY_COSMOG, .natDexNum = NATIONAL_DEX_COSMOG, @@ -3653,18 +4737,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cosmog, 56, 48), + .frontPic = gMonFrontPic_Cosmog, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cosmog, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .enemyMonElevation = 7, - BACK_PIC(Cosmog, 64, 48), + .backPic = gMonBackPic_Cosmog, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cosmog), - ICON(Cosmog, 2), - .footprint = gMonFootprint_Cosmog, - LEARNSETS(Cosmog), + .palette = gMonPalette_Cosmog, + .shinyPalette = gMonShinyPalette_Cosmog, + .iconSprite = gMonIcon_Cosmog, + .iconPalIndex = 2, + FOOTPRINT(Cosmog) + .isLegendary = TRUE, + .tmIlliterate = TRUE, + .levelUpLearnset = sCosmogLevelUpLearnset, + .teachableLearnset = sCosmogTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}), }, @@ -3676,7 +4767,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 37, .baseSpAttack = 29, .baseSpDefense = 131, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, .expYield = 140, .evYield_Defense = 1, @@ -3685,10 +4776,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_STURDY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cosmoem"), .cryId = CRY_COSMOEM, .natDexNum = NATIONAL_DEX_COSMOEM, @@ -3704,18 +4794,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cosmoem, 48, 48), + .frontPic = gMonFrontPic_Cosmoem, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Cosmoem, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Cosmoem, 64, 40), + .backPic = gMonBackPic_Cosmoem, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cosmoem), - ICON(Cosmoem, 0), - .footprint = gMonFootprint_Cosmoem, - LEARNSETS(Cosmoem), + .palette = gMonPalette_Cosmoem, + .shinyPalette = gMonShinyPalette_Cosmoem, + .iconSprite = gMonIcon_Cosmoem, + .iconPalIndex = 0, + FOOTPRINT(Cosmoem) + .isLegendary = TRUE, + .tmIlliterate = TRUE, + .levelUpLearnset = sCosmoemLevelUpLearnset, + .teachableLearnset = sCosmoemTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, {EVO_LEVEL_NIGHT, 53, SPECIES_LUNALA}), }, @@ -3728,18 +4825,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 97, .baseSpAttack = 113, .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_STEEL), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Solgaleo"), .cryId = CRY_SOLGALEO, .natDexNum = NATIONAL_DEX_SOLGALEO, @@ -3755,17 +4851,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Solgaleo, 64, 64), + .frontPic = gMonFrontPic_Solgaleo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Solgaleo, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Solgaleo, 64, 64), + .backPic = gMonBackPic_Solgaleo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Solgaleo), - ICON(Solgaleo, 0), - .footprint = gMonFootprint_Solgaleo, - LEARNSETS(Solgaleo), + .palette = gMonPalette_Solgaleo, + .shinyPalette = gMonShinyPalette_Solgaleo, + .iconSprite = gMonIcon_Solgaleo, + .iconPalIndex = 0, + FOOTPRINT(Solgaleo) + .isLegendary = TRUE, + .levelUpLearnset = sSolgaleoLevelUpLearnset, + .teachableLearnset = sSolgaleoTeachableLearnset, }, [SPECIES_LUNALA] = @@ -3776,18 +4878,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 97, .baseSpAttack = 137, .baseSpDefense = 107, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, .speciesName = _("Lunala"), .cryId = CRY_LUNALA, .natDexNum = NATIONAL_DEX_LUNALA, @@ -3803,18 +4904,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 411, .trainerOffset = 5, - FRONT_PIC(Lunala, 64, 64), + .frontPic = gMonFrontPic_Lunala, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Lunala, .frontAnimId = ANIM_CIRCULAR_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Lunala, 64, 64), + .backPic = gMonBackPic_Lunala, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lunala), - ICON(Lunala, 2), - .footprint = gMonFootprint_Lunala, - LEARNSETS(Lunala), + .palette = gMonPalette_Lunala, + .shinyPalette = gMonShinyPalette_Lunala, + .iconSprite = gMonIcon_Lunala, + .iconPalIndex = 2, + FOOTPRINT(Lunala) + .isLegendary = TRUE, + .levelUpLearnset = sLunalaLevelUpLearnset, + .teachableLearnset = sLunalaTeachableLearnset, }, #endif //P_FAMILY_COSMOG @@ -3827,18 +4934,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 103, .baseSpAttack = 127, .baseSpDefense = 131, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Nihilego"), .cryId = CRY_NIHILEGO, .natDexNum = NATIONAL_DEX_NIHILEGO, @@ -3854,18 +4960,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nihilego, 48, 64), + .frontPic = gMonFrontPic_Nihilego, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Nihilego, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 6, - BACK_PIC(Nihilego, 64, 48), + .backPic = gMonBackPic_Nihilego, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nihilego), - ICON(Nihilego, 0), - .footprint = gMonFootprint_Nihilego, - LEARNSETS(Nihilego), + .palette = gMonPalette_Nihilego, + .shinyPalette = gMonShinyPalette_Nihilego, + .iconSprite = gMonIcon_Nihilego, + .iconPalIndex = 0, + FOOTPRINT(Nihilego) + .isUltraBeast = TRUE, + .levelUpLearnset = sNihilegoLevelUpLearnset, + .teachableLearnset = sNihilegoTeachableLearnset, }, #endif //P_FAMILY_NIHILEGO @@ -3878,19 +4990,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 79, .baseSpAttack = 53, .baseSpDefense = 53, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 1, .evYield_Defense = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isUltraBeast = TRUE, .speciesName = _("Buzzwole"), .cryId = CRY_BUZZWOLE, .natDexNum = NATIONAL_DEX_BUZZWOLE, @@ -3906,17 +5017,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Buzzwole, 64, 64), + .frontPic = gMonFrontPic_Buzzwole, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Buzzwole, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Buzzwole, 64, 56), + .backPic = gMonBackPic_Buzzwole, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Buzzwole), - ICON(Buzzwole, 0), - .footprint = gMonFootprint_Buzzwole, - LEARNSETS(Buzzwole), + .palette = gMonPalette_Buzzwole, + .shinyPalette = gMonShinyPalette_Buzzwole, + .iconSprite = gMonIcon_Buzzwole, + .iconPalIndex = 0, + FOOTPRINT(Buzzwole) + .isUltraBeast = TRUE, + .levelUpLearnset = sBuzzwoleLevelUpLearnset, + .teachableLearnset = sBuzzwoleTeachableLearnset, }, #endif //P_FAMILY_BUZZWOLE @@ -3929,18 +5046,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 151, .baseSpAttack = 137, .baseSpDefense = 37, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Pheromosa"), .cryId = CRY_PHEROMOSA, .natDexNum = NATIONAL_DEX_PHEROMOSA, @@ -3956,17 +5072,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Pheromosa, 56, 64), + .frontPic = gMonFrontPic_Pheromosa, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Pheromosa, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Pheromosa, 64, 64), + .backPic = gMonBackPic_Pheromosa, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pheromosa), - ICON(Pheromosa, 2), - .footprint = gMonFootprint_Pheromosa, - LEARNSETS(Pheromosa), + .palette = gMonPalette_Pheromosa, + .shinyPalette = gMonShinyPalette_Pheromosa, + .iconSprite = gMonIcon_Pheromosa, + .iconPalIndex = 2, + FOOTPRINT(Pheromosa) + .isUltraBeast = TRUE, + .levelUpLearnset = sPheromosaLevelUpLearnset, + .teachableLearnset = sPheromosaTeachableLearnset, }, #endif //P_FAMILY_PHEROMOSA @@ -3979,18 +5101,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 83, .baseSpAttack = 173, .baseSpDefense = 71, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isUltraBeast = TRUE, .speciesName = _("Xurkitree"), .cryId = CRY_XURKITREE, .natDexNum = NATIONAL_DEX_XURKITREE, @@ -4006,17 +5127,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Xurkitree, 64, 64), + .frontPic = gMonFrontPic_Xurkitree, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Xurkitree, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_FAST, - BACK_PIC(Xurkitree, 64, 64), + .backPic = gMonBackPic_Xurkitree, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Xurkitree), - ICON(Xurkitree, 0), - .footprint = gMonFootprint_Xurkitree, - LEARNSETS(Xurkitree), + .palette = gMonPalette_Xurkitree, + .shinyPalette = gMonShinyPalette_Xurkitree, + .iconSprite = gMonIcon_Xurkitree, + .iconPalIndex = 0, + FOOTPRINT(Xurkitree) + .isUltraBeast = TRUE, + .levelUpLearnset = sXurkitreeLevelUpLearnset, + .teachableLearnset = sXurkitreeTeachableLearnset, }, #endif //P_FAMILY_XURKITREE @@ -4029,9 +5156,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 61, .baseSpAttack = 107, .baseSpDefense = 101, - .types = { TYPE_STEEL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FLYING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 1, .evYield_Defense = 1, .evYield_SpAttack = 1, @@ -4039,10 +5166,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isUltraBeast = TRUE, .speciesName = _("Celesteela"), .cryId = CRY_CELESTEELA, .natDexNum = NATIONAL_DEX_CELESTEELA, @@ -4058,17 +5184,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(Celesteela, 64, 64), + .frontPic = gMonFrontPic_Celesteela, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Celesteela, .frontAnimId = ANIM_GROW_STUTTER_SLOW, - BACK_PIC(Celesteela, 64, 64), + .backPic = gMonBackPic_Celesteela, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Celesteela), - ICON(Celesteela, 0), - .footprint = gMonFootprint_Celesteela, - LEARNSETS(Celesteela), + .palette = gMonPalette_Celesteela, + .shinyPalette = gMonShinyPalette_Celesteela, + .iconSprite = gMonIcon_Celesteela, + .iconPalIndex = 0, + FOOTPRINT(Celesteela) + .isUltraBeast = TRUE, + .levelUpLearnset = sCelesteelaLevelUpLearnset, + .teachableLearnset = sCelesteelaTeachableLearnset, }, #endif //P_FAMILY_CELESTEELA @@ -4081,18 +5213,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 109, .baseSpAttack = 59, .baseSpDefense = 31, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Kartana"), .cryId = CRY_KARTANA, .natDexNum = NATIONAL_DEX_KARTANA, @@ -4108,18 +5239,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kartana, 64, 64), + .frontPic = gMonFrontPic_Kartana, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Kartana, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 3, - BACK_PIC(Kartana, 64, 48), + .backPic = gMonBackPic_Kartana, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kartana), - ICON(Kartana, 0), - .footprint = gMonFootprint_Kartana, - LEARNSETS(Kartana), + .palette = gMonPalette_Kartana, + .shinyPalette = gMonShinyPalette_Kartana, + .iconSprite = gMonIcon_Kartana, + .iconPalIndex = 0, + FOOTPRINT(Kartana) + .isUltraBeast = TRUE, + .levelUpLearnset = sKartanaLevelUpLearnset, + .teachableLearnset = sKartanaTeachableLearnset, }, #endif //P_FAMILY_KARTANA @@ -4132,18 +5269,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 97, .baseSpDefense = 53, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isUltraBeast = TRUE, .speciesName = _("Guzzlord"), .cryId = CRY_GUZZLORD, .natDexNum = NATIONAL_DEX_GUZZLORD, @@ -4159,57 +5295,52 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Guzzlord, 64, 64), + .frontPic = gMonFrontPic_Guzzlord, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Guzzlord, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Guzzlord, 64, 56), + .backPic = gMonBackPic_Guzzlord, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Guzzlord), - ICON(Guzzlord, 0), - .footprint = gMonFootprint_Guzzlord, - LEARNSETS(Guzzlord), + .palette = gMonPalette_Guzzlord, + .shinyPalette = gMonShinyPalette_Guzzlord, + .iconSprite = gMonIcon_Guzzlord, + .iconPalIndex = 0, + FOOTPRINT(Guzzlord) + .isUltraBeast = TRUE, + .levelUpLearnset = sGuzzlordLevelUpLearnset, + .teachableLearnset = sGuzzlordTeachableLearnset, }, #endif //P_FAMILY_GUZZLORD #if P_FAMILY_NECROZMA -#define NECROZMA_MISC_INFO \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .noFlip = TRUE, \ - .speciesName = _("Necrozma"), \ - .natDexNum = NATIONAL_DEX_NECROZMA, \ - .categoryName = _("Prism"), \ - .pokemonScale = 256, \ - .pokemonOffset = 3, \ - .trainerScale = 369, \ - .trainerOffset = 7, \ - .footprint = gMonFootprint_Necrozma, \ - LEARNSETS(Necrozma), \ - .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_NECROZMA] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 107, .baseDefense = 101, .baseSpeed = 79, .baseSpAttack = 127, .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 1, .evYield_SpAttack = 2, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 24, .weight = 2300, .description = COMPOUND_STRING( @@ -4217,35 +5348,56 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "life-form, apparently asleep underground,\n" "is thought to have come from another\n" "world in ancient times."), - FRONT_PIC(Necrozma, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Necrozma, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Necrozma, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Necrozma, 64, 64), + .backPic = gMonBackPic_Necrozma, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Necrozma), - ICON(Necrozma, 0), + .palette = gMonPalette_Necrozma, + .shinyPalette = gMonShinyPalette_Necrozma, + .iconSprite = gMonIcon_Necrozma, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_NECROZMA_DUSK_MANE] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 157, .baseDefense = 127, .baseSpeed = 77, .baseSpAttack = 113, .baseSpDefense = 109, - .types = { TYPE_PSYCHIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_STEEL), .catchRate = 255, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_DUSK_MANE, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 38, .weight = 4600, .description = COMPOUND_STRING( @@ -4253,35 +5405,56 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "devouring the light of Solgaleo. It pounces\n" "on foes and then slashes them with\n" "the claws on its four limbs and back."), - FRONT_PIC(NecrozmaDuskMane, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaDuskMane, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(NecrozmaDuskMane, 64, 64), + .backPic = gMonBackPic_NecrozmaDuskMane, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaDuskMane), - ICON(NecrozmaDuskMane, 0), + .palette = gMonPalette_NecrozmaDuskMane, + .shinyPalette = gMonShinyPalette_NecrozmaDuskMane, + .iconSprite = gMonIcon_NecrozmaDuskMane, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formChangeTable = sNecrozmaDuskManeFormChangeTable, }, [SPECIES_NECROZMA_DAWN_WINGS] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 113, .baseDefense = 109, .baseSpeed = 77, .baseSpAttack = 157, .baseSpDefense = 127, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 255, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_DAWN_WINGS, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 42, .weight = 3500, .description = COMPOUND_STRING( @@ -4289,39 +5462,60 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "devouring the light of Lunala. It grasps\n" "foes in its giant claws and rips them\n" "apart with brute force."), - FRONT_PIC(NecrozmaDawnWings, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaDawnWings, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(NecrozmaDawnWings, 64, 64), + .backPic = gMonBackPic_NecrozmaDawnWings, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaDawnWings), - ICON(NecrozmaDawnWings, 0), + .palette = gMonPalette_NecrozmaDawnWings, + .shinyPalette = gMonShinyPalette_NecrozmaDawnWings, + .iconSprite = gMonIcon_NecrozmaDawnWings, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formChangeTable = sNecrozmaDawnWingsFormChangeTable, }, #if P_ULTRA_BURST_FORMS [SPECIES_NECROZMA_ULTRA] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 167, .baseDefense = 97, .baseSpeed = 129, .baseSpAttack = 167, .baseSpDefense = 97, - .types = { TYPE_PSYCHIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_DRAGON), .catchRate = 255, - .expYield = 339, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 377 : 339, .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, - .abilities = { ABILITY_NEUROFORCE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NEUROFORCE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_ULTRA, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 75, .weight = 2300, .description = COMPOUND_STRING( @@ -4329,84 +5523,142 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "its body affects living things and\n" "nature, impacting them in various\n" "ways."), - FRONT_PIC(NecrozmaUltra, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaUltra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(NecrozmaUltra, 64, 64), + .backPic = gMonBackPic_NecrozmaUltra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaUltra), - ICON(NecrozmaUltra, 2), - .cannotBeTraded = TRUE, + .palette = gMonPalette_NecrozmaUltra, + .shinyPalette = gMonShinyPalette_NecrozmaUltra, + .iconSprite = gMonIcon_NecrozmaUltra, + .iconPalIndex = 2, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .isUltraBurst = TRUE, + .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, }, #endif //P_ULTRA_BURST_FORMS #endif //P_FUSION_FORMS #endif //P_FAMILY_NECROZMA #if P_FAMILY_MAGEARNA -#define MAGEARNA_MISC_INFO(Form) \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 65, \ - .baseSpAttack = 130, \ - .baseSpDefense = 115, \ - .types = { TYPE_STEEL, TYPE_FAIRY }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE }, \ - .speciesName = _("Magearna"), \ - .cryId = CRY_MAGEARNA, \ - .natDexNum = NATIONAL_DEX_MAGEARNA, \ - .categoryName = _("Artificial"), \ - .height = 10, \ - .weight = 805, \ - .pokemonScale = 305, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - FRONT_PIC(Form, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Magearna, \ - .frontAnimId = ANIM_H_SLIDE_SLOW, \ - BACK_PIC(Form, 64, 56), \ - .backPicYOffset = 4, \ - PALETTES(Form), \ - ICON(Form, 0), \ - .footprint = gMonFootprint_Magearna, \ - LEARNSETS(Magearna), \ - .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, \ - .isMythical = TRUE - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_MAGEARNA] = { - MAGEARNA_MISC_INFO(Magearna), + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 65, + .baseSpAttack = 130, + .baseSpDefense = 115, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Magearna"), + .cryId = CRY_MAGEARNA, + .natDexNum = NATIONAL_DEX_MAGEARNA, + .categoryName = _("Artificial"), + .height = 10, + .weight = 805, .description = COMPOUND_STRING( "This artificial Pokémon, constructed more\n" "than 500 years ago, can understand human\n" "speech but cannot itself speak. Its true\n" "self is its Soul-Heart, an artificial soul."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Magearna, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Magearna, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .backPic = gMonBackPic_Magearna, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Magearna, + .shinyPalette = gMonShinyPalette_Magearna, + .iconSprite = gMonIcon_Magearna, + .iconPalIndex = 0, + FOOTPRINT(Magearna) + .isMythical = TRUE, + .levelUpLearnset = sMagearnaLevelUpLearnset, + .teachableLearnset = sMagearnaTeachableLearnset, + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, }, [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { - MAGEARNA_MISC_INFO(MagearnaOriginalColor), + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 65, + .baseSpAttack = 130, + .baseSpDefense = 115, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Magearna"), + .cryId = CRY_MAGEARNA, + .natDexNum = NATIONAL_DEX_MAGEARNA, + .categoryName = _("Artificial"), + .height = 10, + .weight = 805, .description = COMPOUND_STRING( "This is its form from almost 500\n" "years ago. Its body is nothing more\n" "than a container-its artificial heart\n" "is the actual life-form."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MagearnaOriginalColor, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Magearna, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .backPic = gMonBackPic_MagearnaOriginalColor, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_MagearnaOriginalColor, + .shinyPalette = gMonShinyPalette_MagearnaOriginalColor, + .iconSprite = gMonIcon_MagearnaOriginalColor, + .iconPalIndex = 0, + FOOTPRINT(Magearna) + .isMythical = TRUE, + .levelUpLearnset = sMagearnaLevelUpLearnset, + .teachableLearnset = sMagearnaTeachableLearnset, + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, }, #endif //P_FAMILY_MAGEARNA @@ -4419,17 +5671,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 125, .baseSpAttack = 90, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_GHOST), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 2, .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TECHNICIAN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TECHNICIAN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, .speciesName = _("Marshadow"), @@ -4447,18 +5699,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marshadow, 32, 56), + .frontPic = gMonFrontPic_Marshadow, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Marshadow, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Marshadow, 40, 56), + .backPic = gMonBackPic_Marshadow, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Marshadow), - ICON(Marshadow, 0), - .footprint = gMonFootprint_Marshadow, - LEARNSETS(Marshadow), + .palette = gMonPalette_Marshadow, + .shinyPalette = gMonShinyPalette_Marshadow, + .iconSprite = gMonIcon_Marshadow, + .iconPalIndex = 0, + FOOTPRINT(Marshadow) .isMythical = TRUE, + .levelUpLearnset = sMarshadowLevelUpLearnset, + .teachableLearnset = sMarshadowTeachableLearnset, }, #endif //P_FAMILY_MARSHADOW @@ -4471,18 +5728,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 73, .baseSpAttack = 73, .baseSpDefense = 67, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 45, - .expYield = 189, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 210 : 189, .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isUltraBeast = TRUE, .speciesName = _("Poipole"), .cryId = CRY_POIPOLE, .natDexNum = NATIONAL_DEX_POIPOLE, @@ -4497,18 +5753,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poipole, 40, 56), + .frontPic = gMonFrontPic_Poipole, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Poipole, .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Poipole, 48, 56), + .backPic = gMonBackPic_Poipole, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Poipole), - ICON(Poipole, 0), - .footprint = gMonFootprint_Poipole, - LEARNSETS(Poipole), + .palette = gMonPalette_Poipole, + .shinyPalette = gMonShinyPalette_Poipole, + .iconSprite = gMonIcon_Poipole, + .iconPalIndex = 0, + FOOTPRINT(Poipole) + .isUltraBeast = TRUE, + .levelUpLearnset = sPoipoleLevelUpLearnset, + .teachableLearnset = sPoipoleTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}), }, @@ -4520,18 +5782,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 121, .baseSpAttack = 127, .baseSpDefense = 73, - .types = { TYPE_POISON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), .catchRate = 45, - .expYield = 243, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 270 : 243, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isUltraBeast = TRUE, .speciesName = _("Naganadel"), .cryId = CRY_NAGANADEL, .natDexNum = NATIONAL_DEX_NAGANADEL, @@ -4546,18 +5807,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Naganadel, 64, 64), + .frontPic = gMonFrontPic_Naganadel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Naganadel, .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, .enemyMonElevation = 7, - BACK_PIC(Naganadel, 64, 56), + .backPic = gMonBackPic_Naganadel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Naganadel), - ICON(Naganadel, 0), - .footprint = gMonFootprint_Naganadel, - LEARNSETS(Naganadel), + .palette = gMonPalette_Naganadel, + .shinyPalette = gMonShinyPalette_Naganadel, + .iconSprite = gMonIcon_Naganadel, + .iconPalIndex = 0, + FOOTPRINT(Naganadel) + .isUltraBeast = TRUE, + .levelUpLearnset = sNaganadelLevelUpLearnset, + .teachableLearnset = sNaganadelTeachableLearnset, }, #endif //P_FAMILY_POIPOLE @@ -4570,19 +5837,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 13, .baseSpAttack = 53, .baseSpDefense = 101, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 30, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, - .isUltraBeast = TRUE, .speciesName = _("Stakataka"), .cryId = CRY_STAKATAKA, .natDexNum = NATIONAL_DEX_STAKATAKA, @@ -4597,17 +5863,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Stakataka, 64, 64), + .frontPic = gMonFrontPic_Stakataka, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Stakataka, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Stakataka, 64, 48), + .backPic = gMonBackPic_Stakataka, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stakataka), - ICON(Stakataka, 0), - .footprint = gMonFootprint_Stakataka, - LEARNSETS(Stakataka), + .palette = gMonPalette_Stakataka, + .shinyPalette = gMonShinyPalette_Stakataka, + .iconSprite = gMonIcon_Stakataka, + .iconPalIndex = 0, + FOOTPRINT(Stakataka) + .isUltraBeast = TRUE, + .levelUpLearnset = sStakatakaLevelUpLearnset, + .teachableLearnset = sStakatakaTeachableLearnset, }, #endif //P_FAMILY_STAKATAKA @@ -4620,19 +5892,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 107, .baseSpAttack = 151, .baseSpDefense = 79, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 30, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, - .isUltraBeast = TRUE, .speciesName = _("Blacephaln"), .cryId = CRY_BLACEPHALON, .natDexNum = NATIONAL_DEX_BLACEPHALON, @@ -4647,17 +5918,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Blacephalon, 56, 64), + .frontPic = gMonFrontPic_Blacephalon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Blacephalon, .frontAnimId = ANIM_SHAKE_GLOW_RED, - BACK_PIC(Blacephalon, 64, 48), + .backPic = gMonBackPic_Blacephalon, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Blacephalon), - ICON(Blacephalon, 0), - .footprint = gMonFootprint_Blacephalon, - LEARNSETS(Blacephalon), + .palette = gMonPalette_Blacephalon, + .shinyPalette = gMonShinyPalette_Blacephalon, + .iconSprite = gMonIcon_Blacephalon, + .iconPalIndex = 0, + FOOTPRINT(Blacephalon) + .isUltraBeast = TRUE, + .levelUpLearnset = sBlacephalonLevelUpLearnset, + .teachableLearnset = sBlacephalonTeachableLearnset, }, #endif //P_FAMILY_BLACEPHALON @@ -4670,18 +5947,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 143, .baseSpAttack = 102, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Zeraora"), .cryId = CRY_ZERAORA, .natDexNum = NATIONAL_DEX_ZERAORA, @@ -4696,17 +5972,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Zeraora, 64, 56), + .frontPic = gMonFrontPic_Zeraora, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Zeraora, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Zeraora, 64, 56), + .backPic = gMonBackPic_Zeraora, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Zeraora), - ICON(Zeraora, 0), - .footprint = gMonFootprint_Zeraora, - LEARNSETS(Zeraora), + .palette = gMonPalette_Zeraora, + .shinyPalette = gMonShinyPalette_Zeraora, + .iconSprite = gMonIcon_Zeraora, + .iconPalIndex = 0, + FOOTPRINT(Zeraora) + .isMythical = TRUE, + .levelUpLearnset = sZeraoraLevelUpLearnset, + .teachableLearnset = sZeraoraTeachableLearnset, }, #endif //P_FAMILY_ZERAORA @@ -4719,18 +6001,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 34, .baseSpAttack = 55, .baseSpDefense = 35, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 3, - .expYield = 135, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 150 : 135, .evYield_Attack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isMythical = TRUE, .speciesName = _("Meltan"), .cryId = CRY_MELTAN, .natDexNum = NATIONAL_DEX_MELTAN, @@ -4745,76 +6026,103 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meltan, 32, 48), + .frontPic = gMonFrontPic_Meltan, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Meltan, .frontAnimId = ANIM_GROW_STUTTER_SLOW, - BACK_PIC(Meltan, 40, 40), + .backPic = gMonBackPic_Meltan, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Meltan), - ICON(Meltan, 2), - .footprint = gMonFootprint_Meltan, - LEARNSETS(Meltan), + .palette = gMonPalette_Meltan, + .shinyPalette = gMonShinyPalette_Meltan, + .iconSprite = gMonIcon_Meltan, + .iconPalIndex = 2, + FOOTPRINT(Meltan) + .isMythical = TRUE, + .levelUpLearnset = sMeltanLevelUpLearnset, + .teachableLearnset = sMeltanTeachableLearnset, }, -#define MELMETAL_MISC_INFO \ - .baseHP = 135, \ - .baseAttack = 143, \ - .baseDefense = 143, \ - .baseSpeed = 34, \ - .baseSpAttack = 80, \ - .baseSpDefense = 65, \ - .types = { TYPE_STEEL, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_IRON_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Melmetal"), \ - .cryId = CRY_MELMETAL, \ - .natDexNum = NATIONAL_DEX_MELMETAL, \ - .categoryName = _("Hex Nut"), \ - .pokemonScale = 257, \ - .pokemonOffset = 10, \ - .trainerScale = 423, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Melmetal, \ - LEARNSETS(Melmetal), \ - .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, \ - .formChangeTable = sMelmetalFormChangeTable, \ - .isMythical = TRUE - [SPECIES_MELMETAL] = { - MELMETAL_MISC_INFO, + .baseHP = 135, + .baseAttack = 143, + .baseDefense = 143, + .baseSpeed = 34, + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Melmetal"), + .cryId = CRY_MELMETAL, + .natDexNum = NATIONAL_DEX_MELMETAL, + .categoryName = _("Hex Nut"), .height = 25, .weight = 800, .description = COMPOUND_STRING( "Revered long ago for its capacity to create\n" "iron from nothing, for some reason it has\n" "come back to life after 3,000 years."), - FRONT_PIC(Melmetal, 64, 56), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Melmetal, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Melmetal, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Melmetal, 64, 40), + .backPic = gMonBackPic_Melmetal, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Melmetal), - ICON(Melmetal, 2), + .palette = gMonPalette_Melmetal, + .shinyPalette = gMonShinyPalette_Melmetal, + .iconSprite = gMonIcon_Melmetal, + .iconPalIndex = 2, + FOOTPRINT(Melmetal) + .isMythical = TRUE, + .levelUpLearnset = sMelmetalLevelUpLearnset, + .teachableLearnset = sMelmetalTeachableLearnset, + .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, + .formChangeTable = sMelmetalFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_MELMETAL_GIGANTAMAX] = { - MELMETAL_MISC_INFO, - .isGigantamax = TRUE, + .baseHP = 135, + .baseAttack = 143, + .baseDefense = 143, + .baseSpeed = 34, + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Melmetal"), + .cryId = CRY_MELMETAL, + .natDexNum = NATIONAL_DEX_MELMETAL, + .categoryName = _("Hex Nut"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -4822,15 +6130,30 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "legends about a cyclopean giant. In fact,\n" "the giant was a Melmetal that was\n" "flooded with Gigantamax energy."), - FRONT_PIC(MelmetalGigantamax, 64, 64), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + .frontPic = gMonFrontPic_MelmetalGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_MelmetalGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MelmetalGigantamax, 64, 64), + .backPic = gMonBackPic_MelmetalGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MelmetalGigantamax), - ICON(MelmetalGigantamax, 0), + .palette = gMonPalette_MelmetalGigantamax, + .shinyPalette = gMonShinyPalette_MelmetalGigantamax, + .iconSprite = gMonIcon_MelmetalGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Melmetal) + .isMythical = TRUE, + .isGigantamax = TRUE, + .levelUpLearnset = sMelmetalLevelUpLearnset, + .teachableLearnset = sMelmetalTeachableLearnset, + .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, + .formChangeTable = sMelmetalFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MELTAN diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8_families.h similarity index 51% rename from src/data/pokemon/species_info/gen_8.h rename to src/data/pokemon/species_info/gen_8_families.h index 47b578eae..bb9ff9c08 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Attack = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grookey"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grookey, 40, 48), + .frontPic = gMonFrontPic_Grookey, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Grookey, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grookey, 48, 56), + .backPic = gMonBackPic_Grookey, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grookey), - ICON(Grookey, 1), - .footprint = gMonFootprint_Grookey, - LEARNSETS(Grookey), + .palette = gMonPalette_Grookey, + .shinyPalette = gMonShinyPalette_Grookey, + .iconSprite = gMonIcon_Grookey, + .iconPalIndex = 1, + FOOTPRINT(Grookey) + .levelUpLearnset = sGrookeyLevelUpLearnset, + .teachableLearnset = sGrookeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_THWACKEY}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 80, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 147, .evYield_Attack = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Thwackey"), @@ -85,95 +90,131 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Thwackey, 48, 56), + .frontPic = gMonFrontPic_Thwackey, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Thwackey, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Thwackey, 56, 56), + .backPic = gMonBackPic_Thwackey, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Thwackey), - ICON(Thwackey, 1), - .footprint = gMonFootprint_Thwackey, - LEARNSETS(Thwackey), + .palette = gMonPalette_Thwackey, + .shinyPalette = gMonShinyPalette_Thwackey, + .iconSprite = gMonIcon_Thwackey, + .iconPalIndex = 1, + FOOTPRINT(Thwackey) + .levelUpLearnset = sThwackeyLevelUpLearnset, + .teachableLearnset = sThwackeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_RILLABOOM}), }, -#define RILLABOOM_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 125, \ - .baseDefense = 90, \ - .baseSpeed = 85, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = { TYPE_GRASS, TYPE_GRASS }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, \ - .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Rillaboom"), \ - .cryId = CRY_RILLABOOM, \ - .natDexNum = NATIONAL_DEX_RILLABOOM, \ - .categoryName = _("Drummer"), \ - .footprint = gMonFootprint_Rillaboom, \ - LEARNSETS(Rillaboom), \ - .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, \ - .formChangeTable = sRillaboomFormChangeTable - [SPECIES_RILLABOOM] = { - RILLABOOM_MISC_INFO, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = 265, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rillaboom"), + .cryId = CRY_RILLABOOM, + .natDexNum = NATIONAL_DEX_RILLABOOM, + .categoryName = _("Drummer"), .height = 21, .weight = 900, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, .description = COMPOUND_STRING( "By drumming, it taps into the power of\n" "its special tree stump. The roots of the\n" "stump follow its direction in battle."), - FRONT_PIC(Rillaboom, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Rillaboom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rillaboom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rillaboom, 64, 56), + .backPic = gMonBackPic_Rillaboom, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rillaboom), - ICON(Rillaboom, 1), + .palette = gMonPalette_Rillaboom, + .shinyPalette = gMonShinyPalette_Rillaboom, + .iconSprite = gMonIcon_Rillaboom, + .iconPalIndex = 1, + FOOTPRINT(Rillaboom) + .levelUpLearnset = sRillaboomLevelUpLearnset, + .teachableLearnset = sRillaboomTeachableLearnset, + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, + .formChangeTable = sRillaboomFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_RILLABOOM_GIGANTAMAX] = { - RILLABOOM_MISC_INFO, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = 265, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rillaboom"), + .cryId = CRY_RILLABOOM, + .natDexNum = NATIONAL_DEX_RILLABOOM, + .categoryName = _("Drummer"), .height = 280, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, .description = COMPOUND_STRING( "Rillaboom has become one with its\n" "forest of drums and continues to lay\n" "down beats that shake all of Galar."), - FRONT_PIC(RillaboomGigantamax, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_RillaboomGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RillaboomGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RillaboomGigantamax, 64, 64), + .backPic = gMonBackPic_RillaboomGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RillaboomGigantamax), - ICON(RillaboomGigantamax, 1), + .palette = gMonPalette_RillaboomGigantamax, + .shinyPalette = gMonShinyPalette_RillaboomGigantamax, + .iconSprite = gMonIcon_RillaboomGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Rillaboom) .isGigantamax = TRUE, + .levelUpLearnset = sRillaboomLevelUpLearnset, + .teachableLearnset = sRillaboomTeachableLearnset, + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, + .formChangeTable = sRillaboomFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GROOKEY @@ -187,7 +228,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 69, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -195,7 +236,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Scorbunny"), @@ -213,17 +254,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scorbunny, 40, 56), + .frontPic = gMonFrontPic_Scorbunny, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Scorbunny, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scorbunny, 48, 56), + .backPic = gMonBackPic_Scorbunny, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Scorbunny), - ICON(Scorbunny, 0), - .footprint = gMonFootprint_Scorbunny, - LEARNSETS(Scorbunny), + .palette = gMonPalette_Scorbunny, + .shinyPalette = gMonShinyPalette_Scorbunny, + .iconSprite = gMonIcon_Scorbunny, + .iconPalIndex = 0, + FOOTPRINT(Scorbunny) + .levelUpLearnset = sScorbunnyLevelUpLearnset, + .teachableLearnset = sScorbunnyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_RABOOT}), }, @@ -235,7 +281,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 94, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 147, .evYield_Speed = 2, @@ -243,7 +289,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Raboot"), @@ -260,50 +306,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raboot, 40, 56), + .frontPic = gMonFrontPic_Raboot, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Raboot, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Raboot, 56, 56), + .backPic = gMonBackPic_Raboot, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Raboot), - ICON(Raboot, 0), - .footprint = gMonFootprint_Raboot, - LEARNSETS(Raboot), + .palette = gMonPalette_Raboot, + .shinyPalette = gMonShinyPalette_Raboot, + .iconSprite = gMonIcon_Raboot, + .iconPalIndex = 0, + FOOTPRINT(Raboot) + .levelUpLearnset = sRabootLevelUpLearnset, + .teachableLearnset = sRabootTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_CINDERACE}), }, -#define CINDERACE_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 116, \ - .baseDefense = 75, \ - .baseSpeed = 119, \ - .baseSpAttack = 65, \ - .baseSpDefense = 75, \ - .types = { TYPE_FIRE, TYPE_FIRE }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Cinderace"), \ - .cryId = CRY_CINDERACE, \ - .natDexNum = NATIONAL_DEX_CINDERACE, \ - .categoryName = _("Striker"), \ - .footprint = gMonFootprint_Cinderace, \ - LEARNSETS(Cinderace), \ - .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, \ - .formChangeTable = sCinderaceFormChangeTable - [SPECIES_CINDERACE] = { - CINDERACE_MISC_INFO, + .baseHP = 80, + .baseAttack = 116, + .baseDefense = 75, + .baseSpeed = 119, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Cinderace"), + .cryId = CRY_CINDERACE, + .natDexNum = NATIONAL_DEX_CINDERACE, + .categoryName = _("Striker"), .height = 14, .weight = 330, .description = COMPOUND_STRING( @@ -315,21 +359,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Cinderace, 40, 64), + .frontPic = gMonFrontPic_Cinderace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cinderace, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cinderace, 48, 56), + .backPic = gMonBackPic_Cinderace, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cinderace), - ICON(Cinderace, 0), + .palette = gMonPalette_Cinderace, + .shinyPalette = gMonShinyPalette_Cinderace, + .iconSprite = gMonIcon_Cinderace, + .iconPalIndex = 0, + FOOTPRINT(Cinderace) + .levelUpLearnset = sCinderaceLevelUpLearnset, + .teachableLearnset = sCinderaceTeachableLearnset, + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, + .formChangeTable = sCinderaceFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CINDERACE_GIGANTAMAX] = { - CINDERACE_MISC_INFO, + .baseHP = 80, + .baseAttack = 116, + .baseDefense = 75, + .baseSpeed = 119, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Cinderace"), + .cryId = CRY_CINDERACE, + .natDexNum = NATIONAL_DEX_CINDERACE, + .categoryName = _("Striker"), .height = 270, .weight = 0, .description = COMPOUND_STRING( @@ -341,16 +414,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(CinderaceGigantamax, 64, 64), + .frontPic = gMonFrontPic_CinderaceGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CinderaceGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CinderaceGigantamax, 64, 64), + .backPic = gMonBackPic_CinderaceGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CinderaceGigantamax), - ICON(CinderaceGigantamax, 0), + .palette = gMonPalette_CinderaceGigantamax, + .shinyPalette = gMonShinyPalette_CinderaceGigantamax, + .iconSprite = gMonIcon_CinderaceGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Cinderace) .isGigantamax = TRUE, + .levelUpLearnset = sCinderaceLevelUpLearnset, + .teachableLearnset = sCinderaceTeachableLearnset, + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, + .formChangeTable = sCinderaceFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SCORBUNNY @@ -364,7 +446,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -373,7 +455,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sobble"), @@ -391,17 +473,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sobble, 40, 56), + .frontPic = gMonFrontPic_Sobble, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sobble, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sobble, 40, 56), + .backPic = gMonBackPic_Sobble, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sobble), - ICON(Sobble, 2), - .footprint = gMonFootprint_Sobble, - LEARNSETS(Sobble), + .palette = gMonPalette_Sobble, + .shinyPalette = gMonShinyPalette_Sobble, + .iconSprite = gMonIcon_Sobble, + .iconPalIndex = 2, + FOOTPRINT(Sobble) + .levelUpLearnset = sSobbleLevelUpLearnset, + .teachableLearnset = sSobbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_DRIZZILE}), }, @@ -413,7 +500,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 90, .baseSpAttack = 95, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 147, .evYield_SpAttack = 2, @@ -421,7 +508,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Drizzile"), @@ -438,50 +525,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drizzile, 40, 48), + .frontPic = gMonFrontPic_Drizzile, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Drizzile, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Drizzile, 56, 48), + .backPic = gMonBackPic_Drizzile, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drizzile), - ICON(Drizzile, 2), - .footprint = gMonFootprint_Drizzile, - LEARNSETS(Drizzile), + .palette = gMonPalette_Drizzile, + .shinyPalette = gMonShinyPalette_Drizzile, + .iconSprite = gMonIcon_Drizzile, + .iconPalIndex = 2, + FOOTPRINT(Drizzile) + .levelUpLearnset = sDrizzileLevelUpLearnset, + .teachableLearnset = sDrizzileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_INTELEON}), }, -#define INTELEON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 65, \ - .baseSpeed = 120, \ - .baseSpAttack = 125, \ - .baseSpDefense = 65, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Inteleon"), \ - .cryId = CRY_INTELEON, \ - .natDexNum = NATIONAL_DEX_INTELEON, \ - .categoryName = _("Secret Agent"), \ - .footprint = gMonFootprint_Inteleon, \ - LEARNSETS(Inteleon), \ - .formSpeciesIdTable = sInteleonFormSpeciesIdTable, \ - .formChangeTable = sInteleonFormChangeTable - [SPECIES_INTELEON] = { - INTELEON_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Inteleon"), + .cryId = CRY_INTELEON, + .natDexNum = NATIONAL_DEX_INTELEON, + .categoryName = _("Secret Agent"), .height = 19, .weight = 452, .description = COMPOUND_STRING( @@ -493,21 +578,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Inteleon, 48, 64), + .frontPic = gMonFrontPic_Inteleon, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Inteleon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Inteleon, 56, 64), + .backPic = gMonBackPic_Inteleon, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Inteleon), - ICON(Inteleon, 0), + .palette = gMonPalette_Inteleon, + .shinyPalette = gMonShinyPalette_Inteleon, + .iconSprite = gMonIcon_Inteleon, + .iconPalIndex = 0, + FOOTPRINT(Inteleon) + .levelUpLearnset = sInteleonLevelUpLearnset, + .teachableLearnset = sInteleonTeachableLearnset, + .formSpeciesIdTable = sInteleonFormSpeciesIdTable, + .formChangeTable = sInteleonFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_INTELEON_GIGANTAMAX] = { - INTELEON_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Inteleon"), + .cryId = CRY_INTELEON, + .natDexNum = NATIONAL_DEX_INTELEON, + .categoryName = _("Secret Agent"), .height = 400, .weight = 0, .description = COMPOUND_STRING( @@ -519,16 +633,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(InteleonGigantamax, 64, 64), + .frontPic = gMonFrontPic_InteleonGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_InteleonGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(InteleonGigantamax, 64, 64), + .backPic = gMonBackPic_InteleonGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(InteleonGigantamax), - ICON(InteleonGigantamax, 0), + .palette = gMonPalette_InteleonGigantamax, + .shinyPalette = gMonShinyPalette_InteleonGigantamax, + .iconSprite = gMonIcon_InteleonGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Inteleon) .isGigantamax = TRUE, + .levelUpLearnset = sInteleonLevelUpLearnset, + .teachableLearnset = sInteleonTeachableLearnset, + .formSpeciesIdTable = sInteleonFormSpeciesIdTable, + .formChangeTable = sInteleonFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SOBBLE @@ -542,7 +665,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 25, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 55, .evYield_HP = 1, @@ -551,7 +674,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skwovet"), @@ -568,17 +691,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skwovet, 40, 48), + .frontPic = gMonFrontPic_Skwovet, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Skwovet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skwovet, 64, 56), + .backPic = gMonBackPic_Skwovet, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Skwovet), - ICON(Skwovet, 2), - .footprint = gMonFootprint_Skwovet, - LEARNSETS(Skwovet), + .palette = gMonPalette_Skwovet, + .shinyPalette = gMonShinyPalette_Skwovet, + .iconSprite = gMonIcon_Skwovet, + .iconPalIndex = 2, + FOOTPRINT(Skwovet) + .levelUpLearnset = sSkwovetLevelUpLearnset, + .teachableLearnset = sSkwovetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GREEDENT}), }, @@ -590,7 +718,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, .expYield = 161, .evYield_HP = 2, @@ -599,7 +727,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Greedent"), @@ -617,17 +745,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Greedent, 56, 64), + .frontPic = gMonFrontPic_Greedent, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Greedent, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Greedent, 64, 56), + .backPic = gMonBackPic_Greedent, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Greedent), - ICON(Greedent, 0), - .footprint = gMonFootprint_Greedent, - LEARNSETS(Greedent), + .palette = gMonPalette_Greedent, + .shinyPalette = gMonShinyPalette_Greedent, + .iconSprite = gMonIcon_Greedent, + .iconPalIndex = 0, + FOOTPRINT(Greedent) + .levelUpLearnset = sGreedentLevelUpLearnset, + .teachableLearnset = sGreedentTeachableLearnset, }, #endif //P_FAMILY_SKWOVET @@ -640,7 +773,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 57, .baseSpAttack = 33, .baseSpDefense = 35, - .types = { TYPE_FLYING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FLYING), .catchRate = 255, .expYield = 49, .evYield_Speed = 1, @@ -648,7 +781,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Rookidee"), @@ -666,17 +799,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rookidee, 40, 40), + .frontPic = gMonFrontPic_Rookidee, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Rookidee, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Rookidee, 64, 32), + .backPic = gMonBackPic_Rookidee, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rookidee), - ICON(Rookidee, 0), - .footprint = gMonFootprint_Rookidee, - LEARNSETS(Rookidee), + .palette = gMonPalette_Rookidee, + .shinyPalette = gMonShinyPalette_Rookidee, + .iconSprite = gMonIcon_Rookidee, + .iconPalIndex = 0, + FOOTPRINT(Rookidee) + .levelUpLearnset = sRookideeLevelUpLearnset, + .teachableLearnset = sRookideeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CORVISQUIRE}), }, @@ -688,7 +826,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 77, .baseSpAttack = 43, .baseSpDefense = 55, - .types = { TYPE_FLYING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FLYING), .catchRate = 120, .expYield = 128, .evYield_Speed = 2, @@ -696,7 +834,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Corvisquir"), @@ -714,51 +852,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Corvisquire, 64, 56), + .frontPic = gMonFrontPic_Corvisquire, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Corvisquire, .frontAnimId = ANIM_CIRCLE_INTO_BG, .enemyMonElevation = 10, - BACK_PIC(Corvisquire, 56, 48), + .backPic = gMonBackPic_Corvisquire, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Corvisquire), - ICON(Corvisquire, 0), - .footprint = gMonFootprint_Corvisquire, - LEARNSETS(Corvisquire), + .palette = gMonPalette_Corvisquire, + .shinyPalette = gMonShinyPalette_Corvisquire, + .iconSprite = gMonIcon_Corvisquire, + .iconPalIndex = 0, + FOOTPRINT(Corvisquire) + .levelUpLearnset = sCorvisquireLevelUpLearnset, + .teachableLearnset = sCorvisquireTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CORVIKNIGHT}), }, -#define CORVIKNIGHT_MISC_INFO \ - .baseHP = 98, \ - .baseAttack = 87, \ - .baseDefense = 105, \ - .baseSpeed = 67, \ - .baseSpAttack = 53, \ - .baseSpDefense = 85, \ - .types = { TYPE_FLYING, TYPE_STEEL }, \ - .catchRate = 45, \ - .expYield = 248, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Corviknigh"), \ - .cryId = CRY_CORVIKNIGHT, \ - .natDexNum = NATIONAL_DEX_CORVIKNIGHT, \ - .categoryName = _("Raven"), \ - .footprint = gMonFootprint_Corviknight, \ - LEARNSETS(Corviknight), \ - .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, \ - .formChangeTable = sCorviknightFormChangeTable - [SPECIES_CORVIKNIGHT] = { - CORVIKNIGHT_MISC_INFO, + .baseHP = 98, + .baseAttack = 87, + .baseDefense = 105, + .baseSpeed = 67, + .baseSpAttack = 53, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FLYING, TYPE_STEEL), + .catchRate = 45, + .expYield = 248, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Corviknigh"), + .cryId = CRY_CORVIKNIGHT, + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, + .categoryName = _("Raven"), .height = 22, .weight = 750, .description = COMPOUND_STRING( @@ -770,21 +906,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Corviknight, 56, 64), + .frontPic = gMonFrontPic_Corviknight, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Corviknight, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Corviknight, 64, 64), + .backPic = gMonBackPic_Corviknight, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Corviknight), - ICON(Corviknight, 0), + .palette = gMonPalette_Corviknight, + .shinyPalette = gMonShinyPalette_Corviknight, + .iconSprite = gMonIcon_Corviknight, + .iconPalIndex = 0, + FOOTPRINT(Corviknight) + .levelUpLearnset = sCorviknightLevelUpLearnset, + .teachableLearnset = sCorviknightTeachableLearnset, + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, + .formChangeTable = sCorviknightFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CORVIKNIGHT_GIGANTAMAX] = { - CORVIKNIGHT_MISC_INFO, + .baseHP = 98, + .baseAttack = 87, + .baseDefense = 105, + .baseSpeed = 67, + .baseSpAttack = 53, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FLYING, TYPE_STEEL), + .catchRate = 45, + .expYield = 248, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Corviknigh"), + .cryId = CRY_CORVIKNIGHT, + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, + .categoryName = _("Raven"), .height = 140, .weight = 0, .description = COMPOUND_STRING( @@ -796,16 +961,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(CorviknightGigantamax, 64, 64), + .frontPic = gMonFrontPic_CorviknightGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_CorviknightGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CorviknightGigantamax, 64, 64), + .backPic = gMonBackPic_CorviknightGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CorviknightGigantamax), - ICON(CorviknightGigantamax, 0), + .palette = gMonPalette_CorviknightGigantamax, + .shinyPalette = gMonShinyPalette_CorviknightGigantamax, + .iconSprite = gMonIcon_CorviknightGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Corviknight) .isGigantamax = TRUE, + .levelUpLearnset = sCorviknightLevelUpLearnset, + .teachableLearnset = sCorviknightTeachableLearnset, + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, + .formChangeTable = sCorviknightFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROOKIDEE @@ -819,7 +993,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 45, .baseSpAttack = 25, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 36, .evYield_SpDefense = 1, @@ -827,7 +1001,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Blipbug"), @@ -844,17 +1018,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Blipbug, 32, 40), + .frontPic = gMonFrontPic_Blipbug, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Blipbug, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Blipbug, 40, 56), + .backPic = gMonBackPic_Blipbug, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Blipbug), - ICON(Blipbug, 0), - .footprint = gMonFootprint_Blipbug, - LEARNSETS(Blipbug), + .palette = gMonPalette_Blipbug, + .shinyPalette = gMonShinyPalette_Blipbug, + .iconSprite = gMonIcon_Blipbug, + .iconPalIndex = 0, + FOOTPRINT(Blipbug) + .tmIlliterate = TRUE, + .levelUpLearnset = sBlipbugLevelUpLearnset, + .teachableLearnset = sBlipbugTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DOTTLER}), }, @@ -866,7 +1046,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), .catchRate = 120, .expYield = 117, .evYield_SpDefense = 2, @@ -875,7 +1055,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dottler"), @@ -893,51 +1073,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dottler, 48, 40), + .frontPic = gMonFrontPic_Dottler, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dottler, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dottler, 56, 32), + .backPic = gMonBackPic_Dottler, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dottler), - ICON(Dottler, 2), - .footprint = gMonFootprint_Dottler, - LEARNSETS(Dottler), + .palette = gMonPalette_Dottler, + .shinyPalette = gMonShinyPalette_Dottler, + .iconSprite = gMonIcon_Dottler, + .iconPalIndex = 2, + FOOTPRINT(Dottler) + .levelUpLearnset = sDottlerLevelUpLearnset, + .teachableLearnset = sDottlerTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ORBEETLE}), }, -#define ORBEETLE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 110, \ - .baseSpeed = 90, \ - .baseSpAttack = 80, \ - .baseSpDefense = 120, \ - .types = { TYPE_BUG, TYPE_PSYCHIC }, \ - .catchRate = 45, \ - .expYield = 253, \ - .evYield_SpDefense = 3, \ - .itemRare = ITEM_PSYCHIC_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Orbeetle"), \ - .cryId = CRY_ORBEETLE, \ - .natDexNum = NATIONAL_DEX_ORBEETLE, \ - .categoryName = _("Seven Spot"), \ - .footprint = gMonFootprint_Orbeetle, \ - LEARNSETS(Orbeetle), \ - .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, \ - .formChangeTable = sOrbeetleFormChangeTable - [SPECIES_ORBEETLE] = { - ORBEETLE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 110, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = 253, + .evYield_SpDefense = 3, + .itemRare = ITEM_PSYCHIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Orbeetle"), + .cryId = CRY_ORBEETLE, + .natDexNum = NATIONAL_DEX_ORBEETLE, + .categoryName = _("Seven Spot"), .height = 4, .weight = 408, .description = COMPOUND_STRING( @@ -949,22 +1127,52 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Orbeetle, 48, 56), + .frontPic = gMonFrontPic_Orbeetle, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Orbeetle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Orbeetle, 64, 56), + .backPic = gMonBackPic_Orbeetle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Orbeetle), - ICON(Orbeetle, 0), + .palette = gMonPalette_Orbeetle, + .shinyPalette = gMonShinyPalette_Orbeetle, + .iconSprite = gMonIcon_Orbeetle, + .iconPalIndex = 0, + FOOTPRINT(Orbeetle) + .levelUpLearnset = sOrbeetleLevelUpLearnset, + .teachableLearnset = sOrbeetleTeachableLearnset, + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, + .formChangeTable = sOrbeetleFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_ORBEETLE_GIGANTAMAX] = { - ORBEETLE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 110, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = 253, + .evYield_SpDefense = 3, + .itemRare = ITEM_PSYCHIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Orbeetle"), + .cryId = CRY_ORBEETLE, + .natDexNum = NATIONAL_DEX_ORBEETLE, + .categoryName = _("Seven Spot"), .height = 140, .weight = 0, .description = COMPOUND_STRING( @@ -976,16 +1184,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(OrbeetleGigantamax, 64, 64), + .frontPic = gMonFrontPic_OrbeetleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_OrbeetleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OrbeetleGigantamax, 64, 64), + .backPic = gMonBackPic_OrbeetleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OrbeetleGigantamax), - ICON(OrbeetleGigantamax, 0), + .palette = gMonPalette_OrbeetleGigantamax, + .shinyPalette = gMonShinyPalette_OrbeetleGigantamax, + .iconSprite = gMonIcon_OrbeetleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Orbeetle) .isGigantamax = TRUE, + .levelUpLearnset = sOrbeetleLevelUpLearnset, + .teachableLearnset = sOrbeetleTeachableLearnset, + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, + .formChangeTable = sOrbeetleFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BLIPBUG @@ -999,7 +1216,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 47, .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, .expYield = 49, .evYield_SpDefense = 1, @@ -1007,7 +1224,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nickit"), @@ -1025,17 +1242,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nickit, 56, 48), + .frontPic = gMonFrontPic_Nickit, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Nickit, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nickit, 64, 56), + .backPic = gMonBackPic_Nickit, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nickit), - ICON(Nickit, 2), - .footprint = gMonFootprint_Nickit, - LEARNSETS(Nickit), + .palette = gMonPalette_Nickit, + .shinyPalette = gMonShinyPalette_Nickit, + .iconSprite = gMonIcon_Nickit, + .iconPalIndex = 2, + FOOTPRINT(Nickit) + .levelUpLearnset = sNickitLevelUpLearnset, + .teachableLearnset = sNickitTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_THIEVUL}), }, @@ -1047,7 +1269,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 90, .baseSpAttack = 87, .baseSpDefense = 92, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 127, .expYield = 159, .evYield_SpDefense = 2, @@ -1055,7 +1277,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Thievul"), @@ -1073,17 +1295,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Thievul, 64, 56), + .frontPic = gMonFrontPic_Thievul, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Thievul, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Thievul, 56, 64), + .backPic = gMonBackPic_Thievul, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Thievul), - ICON(Thievul, 2), - .footprint = gMonFootprint_Thievul, - LEARNSETS(Thievul), + .palette = gMonPalette_Thievul, + .shinyPalette = gMonShinyPalette_Thievul, + .iconSprite = gMonIcon_Thievul, + .iconPalIndex = 2, + FOOTPRINT(Thievul) + .levelUpLearnset = sThievulLevelUpLearnset, + .teachableLearnset = sThievulTeachableLearnset, }, #endif //P_FAMILY_NICKIT @@ -1096,7 +1323,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 10, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 50, .evYield_SpDefense = 1, @@ -1104,7 +1331,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Gossifleur"), @@ -1122,17 +1349,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gossifleur, 48, 56), + .frontPic = gMonFrontPic_Gossifleur, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Gossifleur, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gossifleur, 56, 48), + .backPic = gMonBackPic_Gossifleur, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gossifleur), - ICON(Gossifleur, 1), - .footprint = gMonFootprint_Gossifleur, - LEARNSETS(Gossifleur), + .palette = gMonPalette_Gossifleur, + .shinyPalette = gMonShinyPalette_Gossifleur, + .iconSprite = gMonIcon_Gossifleur, + .iconPalIndex = 1, + FOOTPRINT(Gossifleur) + .levelUpLearnset = sGossifleurLevelUpLearnset, + .teachableLearnset = sGossifleurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_ELDEGOSS}), }, @@ -1144,7 +1376,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 161, .evYield_SpDefense = 2, @@ -1152,7 +1384,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Eldegoss"), @@ -1170,17 +1402,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eldegoss, 48, 56), + .frontPic = gMonFrontPic_Eldegoss, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Eldegoss, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Eldegoss, 64, 40), + .backPic = gMonBackPic_Eldegoss, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Eldegoss), - ICON(Eldegoss, 1), - .footprint = gMonFootprint_Eldegoss, - LEARNSETS(Eldegoss), + .palette = gMonPalette_Eldegoss, + .shinyPalette = gMonShinyPalette_Eldegoss, + .iconSprite = gMonIcon_Eldegoss, + .iconPalIndex = 1, + FOOTPRINT(Eldegoss) + .levelUpLearnset = sEldegossLevelUpLearnset, + .teachableLearnset = sEldegossTeachableLearnset, }, #endif //P_FAMILY_GOSSIFLEUR @@ -1193,7 +1430,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 48, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 122, .evYield_Defense = 1, @@ -1201,7 +1438,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_RUN_AWAY, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wooloo"), @@ -1219,17 +1456,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wooloo, 40, 40), + .frontPic = gMonFrontPic_Wooloo, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wooloo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wooloo, 56, 32), + .backPic = gMonBackPic_Wooloo, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wooloo), - ICON(Wooloo, 0), - .footprint = gMonFootprint_Wooloo, - LEARNSETS(Wooloo), + .palette = gMonPalette_Wooloo, + .shinyPalette = gMonShinyPalette_Wooloo, + .iconSprite = gMonIcon_Wooloo, + .iconPalIndex = 0, + FOOTPRINT(Wooloo) + .levelUpLearnset = sWoolooLevelUpLearnset, + .teachableLearnset = sWoolooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_DUBWOOL}), }, @@ -1241,7 +1483,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 88, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 127, .expYield = 172, .evYield_Defense = 2, @@ -1249,7 +1491,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_STEADFAST, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Dubwool"), @@ -1267,17 +1509,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dubwool, 48, 56), + .frontPic = gMonFrontPic_Dubwool, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Dubwool, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dubwool, 64, 40), + .backPic = gMonBackPic_Dubwool, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dubwool), - ICON(Dubwool, 2), - .footprint = gMonFootprint_Dubwool, - LEARNSETS(Dubwool), + .palette = gMonPalette_Dubwool, + .shinyPalette = gMonShinyPalette_Dubwool, + .iconSprite = gMonIcon_Dubwool, + .iconPalIndex = 2, + FOOTPRINT(Dubwool) + .levelUpLearnset = sDubwoolLevelUpLearnset, + .teachableLearnset = sDubwoolTeachableLearnset, }, #endif //P_FAMILY_WOOLOO @@ -1290,7 +1537,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 44, .baseSpAttack = 38, .baseSpDefense = 38, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 57, .evYield_Attack = 1, @@ -1298,7 +1545,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chewtle"), @@ -1315,50 +1562,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chewtle, 32, 48), + .frontPic = gMonFrontPic_Chewtle, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Chewtle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chewtle, 56, 56), + .backPic = gMonBackPic_Chewtle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Chewtle), - ICON(Chewtle, 0), - .footprint = gMonFootprint_Chewtle, - LEARNSETS(Chewtle), + .palette = gMonPalette_Chewtle, + .shinyPalette = gMonShinyPalette_Chewtle, + .iconSprite = gMonIcon_Chewtle, + .iconPalIndex = 0, + FOOTPRINT(Chewtle) + .levelUpLearnset = sChewtleLevelUpLearnset, + .teachableLearnset = sChewtleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_DREDNAW}), }, -#define DREDNAW_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 115, \ - .baseDefense = 90, \ - .baseSpeed = 74, \ - .baseSpAttack = 48, \ - .baseSpDefense = 68, \ - .types = { TYPE_WATER, TYPE_ROCK }, \ - .catchRate = 75, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Drednaw"), \ - .cryId = CRY_DREDNAW, \ - .natDexNum = NATIONAL_DEX_DREDNAW, \ - .categoryName = _("Bite"), \ - .footprint = gMonFootprint_Drednaw, \ - LEARNSETS(Drednaw), \ - .formSpeciesIdTable = sDrednawFormSpeciesIdTable, \ - .formChangeTable = sDrednawFormChangeTable - [SPECIES_DREDNAW] = { - DREDNAW_MISC_INFO, + .baseHP = 90, + .baseAttack = 115, + .baseDefense = 90, + .baseSpeed = 74, + .baseSpAttack = 48, + .baseSpDefense = 68, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 75, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Drednaw"), + .cryId = CRY_DREDNAW, + .natDexNum = NATIONAL_DEX_DREDNAW, + .categoryName = _("Bite"), .height = 10, .weight = 1155, .description = COMPOUND_STRING( @@ -1369,21 +1614,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Drednaw, 64, 56), + .frontPic = gMonFrontPic_Drednaw, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drednaw, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Drednaw, 64, 40), + .backPic = gMonBackPic_Drednaw, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drednaw), - ICON(Drednaw, 0), + .palette = gMonPalette_Drednaw, + .shinyPalette = gMonShinyPalette_Drednaw, + .iconSprite = gMonIcon_Drednaw, + .iconPalIndex = 0, + FOOTPRINT(Drednaw) + .levelUpLearnset = sDrednawLevelUpLearnset, + .teachableLearnset = sDrednawTeachableLearnset, + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, + .formChangeTable = sDrednawFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_DREDNAW_GIGANTAMAX] = { - DREDNAW_MISC_INFO, + .baseHP = 90, + .baseAttack = 115, + .baseDefense = 90, + .baseSpeed = 74, + .baseSpAttack = 48, + .baseSpDefense = 68, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 75, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Drednaw"), + .cryId = CRY_DREDNAW, + .natDexNum = NATIONAL_DEX_DREDNAW, + .categoryName = _("Bite"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1395,16 +1669,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(DrednawGigantamax, 64, 64), + .frontPic = gMonFrontPic_DrednawGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DrednawGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DrednawGigantamax, 64, 64), + .backPic = gMonBackPic_DrednawGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DrednawGigantamax), - ICON(DrednawGigantamax, 0), + .palette = gMonPalette_DrednawGigantamax, + .shinyPalette = gMonShinyPalette_DrednawGigantamax, + .iconSprite = gMonIcon_DrednawGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Drednaw) .isGigantamax = TRUE, + .levelUpLearnset = sDrednawLevelUpLearnset, + .teachableLearnset = sDrednawTeachableLearnset, + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, + .formChangeTable = sDrednawFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHEWTLE @@ -1418,7 +1701,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 26, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 255, .expYield = 54, .evYield_HP = 1, @@ -1426,7 +1709,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BALL_FETCH, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Yamper"), @@ -1444,17 +1727,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yamper, 40, 48), + .frontPic = gMonFrontPic_Yamper, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Yamper, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Yamper, 48, 48), + .backPic = gMonBackPic_Yamper, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Yamper), - ICON(Yamper, 1), - .footprint = gMonFootprint_Yamper, - LEARNSETS(Yamper), + .palette = gMonPalette_Yamper, + .shinyPalette = gMonShinyPalette_Yamper, + .iconSprite = gMonIcon_Yamper, + .iconPalIndex = 1, + FOOTPRINT(Yamper) + .levelUpLearnset = sYamperLevelUpLearnset, + .teachableLearnset = sYamperTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLTUND}), }, @@ -1466,7 +1754,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 121, .baseSpAttack = 90, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, .expYield = 172, .evYield_Speed = 2, @@ -1474,7 +1762,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Boltund"), @@ -1492,17 +1780,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Boltund, 48, 56), + .frontPic = gMonFrontPic_Boltund, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Boltund, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Boltund, 64, 56), + .backPic = gMonBackPic_Boltund, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Boltund), - ICON(Boltund, 1), - .footprint = gMonFootprint_Boltund, - LEARNSETS(Boltund), + .palette = gMonPalette_Boltund, + .shinyPalette = gMonShinyPalette_Boltund, + .iconSprite = gMonIcon_Boltund, + .iconPalIndex = 1, + FOOTPRINT(Boltund) + .levelUpLearnset = sBoltundLevelUpLearnset, + .teachableLearnset = sBoltundTeachableLearnset, }, #endif //P_FAMILY_YAMPER @@ -1515,7 +1808,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 48, .evYield_Defense = 1, @@ -1523,7 +1816,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STEAM_ENGINE, ABILITY_HEATPROOF, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Rolycoly"), @@ -1541,17 +1834,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rolycoly, 40, 40), + .frontPic = gMonFrontPic_Rolycoly, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Rolycoly, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Rolycoly, 64, 32), + .backPic = gMonBackPic_Rolycoly, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rolycoly), - ICON(Rolycoly, 0), - .footprint = gMonFootprint_Rolycoly, - LEARNSETS(Rolycoly), + .palette = gMonPalette_Rolycoly, + .shinyPalette = gMonShinyPalette_Rolycoly, + .iconSprite = gMonIcon_Rolycoly, + .iconPalIndex = 0, + FOOTPRINT(Rolycoly) + .levelUpLearnset = sRolycolyLevelUpLearnset, + .teachableLearnset = sRolycolyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CARKOL}), }, @@ -1563,7 +1861,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), .catchRate = 120, .expYield = 144, .evYield_Defense = 2, @@ -1571,7 +1869,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Carkol"), @@ -1588,50 +1886,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carkol, 48, 56), + .frontPic = gMonFrontPic_Carkol, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Carkol, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Carkol, 64, 48), + .backPic = gMonBackPic_Carkol, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Carkol), - ICON(Carkol, 0), - .footprint = gMonFootprint_Carkol, - LEARNSETS(Carkol), + .palette = gMonPalette_Carkol, + .shinyPalette = gMonShinyPalette_Carkol, + .iconSprite = gMonIcon_Carkol, + .iconPalIndex = 0, + FOOTPRINT(Carkol) + .levelUpLearnset = sCarkolLevelUpLearnset, + .teachableLearnset = sCarkolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COALOSSAL}), }, -#define COALOSSAL_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 80, \ - .baseDefense = 120, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 90, \ - .types = { TYPE_ROCK, TYPE_FIRE }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Coalossal"), \ - .cryId = CRY_COALOSSAL, \ - .natDexNum = NATIONAL_DEX_COALOSSAL, \ - .categoryName = _("Coal"), \ - .footprint = gMonFootprint_Coalossal, \ - LEARNSETS(Coalossal), \ - .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, \ - .formChangeTable = sCoalossalFormChangeTable - [SPECIES_COALOSSAL] = { - COALOSSAL_MISC_INFO, + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), + .catchRate = 45, + .expYield = 255, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Coalossal"), + .cryId = CRY_COALOSSAL, + .natDexNum = NATIONAL_DEX_COALOSSAL, + .categoryName = _("Coal"), .height = 28, .weight = 3105, .description = COMPOUND_STRING( @@ -1643,21 +1939,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Coalossal, 56, 64), + .frontPic = gMonFrontPic_Coalossal, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Coalossal, .frontAnimId = ANIM_GLOW_RED, - BACK_PIC(Coalossal, 64, 48), + .backPic = gMonBackPic_Coalossal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Coalossal), - ICON(Coalossal, 0), + .palette = gMonPalette_Coalossal, + .shinyPalette = gMonShinyPalette_Coalossal, + .iconSprite = gMonIcon_Coalossal, + .iconPalIndex = 0, + FOOTPRINT(Coalossal) + .levelUpLearnset = sCoalossalLevelUpLearnset, + .teachableLearnset = sCoalossalTeachableLearnset, + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, + .formChangeTable = sCoalossalFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_COALOSSAL_GIGANTAMAX] = { - COALOSSAL_MISC_INFO, + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), + .catchRate = 45, + .expYield = 255, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Coalossal"), + .cryId = CRY_COALOSSAL, + .natDexNum = NATIONAL_DEX_COALOSSAL, + .categoryName = _("Coal"), .height = 420, .weight = 0, .description = COMPOUND_STRING( @@ -1669,16 +1994,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CoalossalGigantamax, 64, 64), + .frontPic = gMonFrontPic_CoalossalGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CoalossalGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CoalossalGigantamax, 64, 64), + .backPic = gMonBackPic_CoalossalGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CoalossalGigantamax), - ICON(CoalossalGigantamax, 0), + .palette = gMonPalette_CoalossalGigantamax, + .shinyPalette = gMonShinyPalette_CoalossalGigantamax, + .iconSprite = gMonIcon_CoalossalGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Coalossal) .isGigantamax = TRUE, + .levelUpLearnset = sCoalossalLevelUpLearnset, + .teachableLearnset = sCoalossalTeachableLearnset, + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, + .formChangeTable = sCoalossalFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROLYCOLY @@ -1692,7 +2026,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), .catchRate = 255, .expYield = 52, .evYield_Defense = 1, @@ -1700,7 +2034,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Applin"), @@ -1718,52 +2052,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Applin, 32, 40), + .frontPic = gMonFrontPic_Applin, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Applin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Applin, 40, 48), + .backPic = gMonBackPic_Applin, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Applin), - ICON(Applin, 1), - .footprint = gMonFootprint_Applin, - LEARNSETS(Applin), + .palette = gMonPalette_Applin, + .shinyPalette = gMonShinyPalette_Applin, + .iconSprite = gMonIcon_Applin, + .iconPalIndex = 1, + FOOTPRINT(Applin) + .tmIlliterate = TRUE, + .levelUpLearnset = sApplinLevelUpLearnset, + .teachableLearnset = sApplinTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_TART_APPLE, SPECIES_FLAPPLE}, {EVO_ITEM, ITEM_SWEET_APPLE, SPECIES_APPLETUN}, {EVO_ITEM, ITEM_SYRUPY_APPLE, SPECIES_DIPPLIN}), }, -#define FLAPPLE_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 110, \ - .baseDefense = 80, \ - .baseSpeed = 70, \ - .baseSpAttack = 95, \ - .baseSpDefense = 60, \ - .types = { TYPE_GRASS, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Flapple"), \ - .cryId = CRY_FLAPPLE, \ - .natDexNum = NATIONAL_DEX_FLAPPLE, \ - .categoryName = _("Apple Wing"), \ - .footprint = gMonFootprint_Flapple, \ - LEARNSETS(Flapple), \ - .formSpeciesIdTable = sFlappleFormSpeciesIdTable, \ - .formChangeTable = sFlappleFormChangeTable - [SPECIES_FLAPPLE] = { - FLAPPLE_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Flapple"), + .cryId = CRY_FLAPPLE, + .natDexNum = NATIONAL_DEX_FLAPPLE, + .categoryName = _("Apple Wing"), .height = 3, .weight = 10, .description = COMPOUND_STRING( @@ -1774,22 +2107,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flapple, 56, 48), + .frontPic = gMonFrontPic_Flapple, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Flapple, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Flapple, 48, 56), + .backPic = gMonBackPic_Flapple, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flapple), - ICON(Flapple, 1), + .palette = gMonPalette_Flapple, + .shinyPalette = gMonShinyPalette_Flapple, + .iconSprite = gMonIcon_Flapple, + .iconPalIndex = 1, + FOOTPRINT(Flapple) + .levelUpLearnset = sFlappleLevelUpLearnset, + .teachableLearnset = sFlappleTeachableLearnset, + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, + .formChangeTable = sFlappleFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_FLAPPLE_GIGANTAMAX] = { - FLAPPLE_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Flapple"), + .cryId = CRY_FLAPPLE, + .natDexNum = NATIONAL_DEX_FLAPPLE, + .categoryName = _("Apple Wing"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1801,49 +2163,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(FlappleGigantamax, 64, 64), + .frontPic = gMonFrontPic_FlappleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_FlappleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(FlappleGigantamax, 64, 64), + .backPic = gMonBackPic_FlappleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FlappleGigantamax), - ICON(FlappleGigantamax, 1), + .palette = gMonPalette_FlappleGigantamax, + .shinyPalette = gMonShinyPalette_FlappleGigantamax, + .iconSprite = gMonIcon_FlappleGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Flapple) .isGigantamax = TRUE, + .levelUpLearnset = sFlappleLevelUpLearnset, + .teachableLearnset = sFlappleTeachableLearnset, + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, + .formChangeTable = sFlappleFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS -#define APPLETUN_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 30, \ - .baseSpAttack = 100, \ - .baseSpDefense = 80, \ - .types = { TYPE_GRASS, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Appletun"), \ - .cryId = CRY_APPLETUN, \ - .natDexNum = NATIONAL_DEX_APPLETUN, \ - .categoryName = _("Apple Nectar"), \ - .footprint = gMonFootprint_Appletun, \ - LEARNSETS(Appletun), \ - .formSpeciesIdTable = sAppletunFormSpeciesIdTable, \ - .formChangeTable = sAppletunFormChangeTable - [SPECIES_APPLETUN] = { - APPLETUN_MISC_INFO, + .baseHP = 110, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Appletun"), + .cryId = CRY_APPLETUN, + .natDexNum = NATIONAL_DEX_APPLETUN, + .categoryName = _("Apple Nectar"), .height = 4, .weight = 130, .description = COMPOUND_STRING( @@ -1854,21 +2218,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Appletun, 64, 56), + .frontPic = gMonFrontPic_Appletun, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Appletun, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Appletun, 64, 56), + .backPic = gMonBackPic_Appletun, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Appletun), - ICON(Appletun, 1), + .palette = gMonPalette_Appletun, + .shinyPalette = gMonShinyPalette_Appletun, + .iconSprite = gMonIcon_Appletun, + .iconPalIndex = 1, + FOOTPRINT(Appletun) + .levelUpLearnset = sAppletunLevelUpLearnset, + .teachableLearnset = sAppletunTeachableLearnset, + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, + .formChangeTable = sAppletunFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_APPLETUN_GIGANTAMAX] = { - APPLETUN_MISC_INFO, + .baseHP = 110, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Appletun"), + .cryId = CRY_APPLETUN, + .natDexNum = NATIONAL_DEX_APPLETUN, + .categoryName = _("Apple Nectar"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1880,16 +2273,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AppletunGigantamax, 64, 64), + .frontPic = gMonFrontPic_AppletunGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_AppletunGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AppletunGigantamax, 64, 64), + .backPic = gMonBackPic_AppletunGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AppletunGigantamax), - ICON(AppletunGigantamax, 1), + .palette = gMonPalette_AppletunGigantamax, + .shinyPalette = gMonShinyPalette_AppletunGigantamax, + .iconSprite = gMonIcon_AppletunGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Appletun) .isGigantamax = TRUE, + .levelUpLearnset = sAppletunLevelUpLearnset, + .teachableLearnset = sAppletunTeachableLearnset, + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, + .formChangeTable = sAppletunFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS @@ -1902,7 +2304,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), .catchRate = 45, .expYield = 170, .evYield_Defense = 2, @@ -1910,7 +2312,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_GLUTTONY, ABILITY_STICKY_HOLD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dipplin"), @@ -1927,17 +2329,75 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dipplin, 64, 64), + .frontPic = gMonFrontPic_Dipplin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Dipplin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dipplin, 64, 64), + .backPic = gMonBackPic_Dipplin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dipplin), - ICON(Dipplin, 1), - //.footprint = gMonFootprint_Dipplin, - LEARNSETS(Dipplin), + .palette = gMonPalette_Dipplin, + .shinyPalette = gMonShinyPalette_Dipplin, + .iconSprite = gMonIcon_Dipplin, + .iconPalIndex = 1, + //FOOTPRINT(Dipplin) + .levelUpLearnset = sDipplinLevelUpLearnset, + .teachableLearnset = sDipplinTeachableLearnset, + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_CHEER, SPECIES_HYDRAPPLE}), + }, + + [SPECIES_HYDRAPPLE] = + { + .baseHP = 106, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 44, + .baseSpAttack = 120, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 10, + .expYield = 270, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_REGENERATOR, ABILITY_STICKY_HOLD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Hydrapple"), + .cryId = CRY_HYDRAPPLE, + .natDexNum = NATIONAL_DEX_HYDRAPPLE, + .categoryName = _("Apple Hydra"), + .height = 18, + .weight = 930, + .description = COMPOUND_STRING( + "These capricious syrpents have\n" + "banded together. On the rare\n" + "occasion that their moods align,\n" + "their true power is unleashed."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Hydrapple, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Hydrapple, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Hydrapple, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Hydrapple, + .shinyPalette = gMonShinyPalette_Hydrapple, + .iconSprite = gMonIcon_Hydrapple, + .iconPalIndex = 5, + //FOOTPRINT(Hydrapple) + .levelUpLearnset = sHydrappleLevelUpLearnset, + .teachableLearnset = sHydrappleTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -1951,7 +2411,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 46, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 255, .expYield = 63, .evYield_Defense = 1, @@ -1959,7 +2419,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Silicobra"), @@ -1976,50 +2436,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Silicobra, 40, 40), + .frontPic = gMonFrontPic_Silicobra, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Silicobra, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Silicobra, 56, 48), + .backPic = gMonBackPic_Silicobra, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Silicobra), - ICON(Silicobra, 1), - .footprint = gMonFootprint_Silicobra, - LEARNSETS(Silicobra), + .palette = gMonPalette_Silicobra, + .shinyPalette = gMonShinyPalette_Silicobra, + .iconSprite = gMonIcon_Silicobra, + .iconPalIndex = 1, + FOOTPRINT(Silicobra) + .levelUpLearnset = sSilicobraLevelUpLearnset, + .teachableLearnset = sSilicobraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SANDACONDA}), }, -#define SANDACONDA_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 107, \ - .baseDefense = 125, \ - .baseSpeed = 71, \ - .baseSpAttack = 65, \ - .baseSpDefense = 70, \ - .types = { TYPE_GROUND, TYPE_GROUND }, \ - .catchRate = 120, \ - .expYield = 179, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sandaconda"), \ - .cryId = CRY_SANDACONDA, \ - .natDexNum = NATIONAL_DEX_SANDACONDA, \ - .categoryName = _("Sand Snake"), \ - .footprint = gMonFootprint_Sandaconda, \ - LEARNSETS(Sandaconda), \ - .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, \ - .formChangeTable = sSandacondaFormChangeTable - [SPECIES_SANDACONDA] = { - SANDACONDA_MISC_INFO, + .baseHP = 72, + .baseAttack = 107, + .baseDefense = 125, + .baseSpeed = 71, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 120, + .expYield = 179, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sandaconda"), + .cryId = CRY_SANDACONDA, + .natDexNum = NATIONAL_DEX_SANDACONDA, + .categoryName = _("Sand Snake"), .height = 38, .weight = 655, .description = COMPOUND_STRING( @@ -2031,21 +2489,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Sandaconda, 64, 40), + .frontPic = gMonFrontPic_Sandaconda, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Sandaconda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sandaconda, 64, 40), + .backPic = gMonBackPic_Sandaconda, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sandaconda), - ICON(Sandaconda, 1), + .palette = gMonPalette_Sandaconda, + .shinyPalette = gMonShinyPalette_Sandaconda, + .iconSprite = gMonIcon_Sandaconda, + .iconPalIndex = 1, + FOOTPRINT(Sandaconda) + .levelUpLearnset = sSandacondaLevelUpLearnset, + .teachableLearnset = sSandacondaTeachableLearnset, + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, + .formChangeTable = sSandacondaFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_SANDACONDA_GIGANTAMAX] = { - SANDACONDA_MISC_INFO, + .baseHP = 72, + .baseAttack = 107, + .baseDefense = 125, + .baseSpeed = 71, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 120, + .expYield = 179, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sandaconda"), + .cryId = CRY_SANDACONDA, + .natDexNum = NATIONAL_DEX_SANDACONDA, + .categoryName = _("Sand Snake"), .height = 220, .weight = 0, .description = COMPOUND_STRING( @@ -2057,108 +2544,189 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(SandacondaGigantamax, 64, 64), + .frontPic = gMonFrontPic_SandacondaGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_SandacondaGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandacondaGigantamax, 64, 64), + .backPic = gMonBackPic_SandacondaGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandacondaGigantamax), - ICON(SandacondaGigantamax, 1), + .palette = gMonPalette_SandacondaGigantamax, + .shinyPalette = gMonShinyPalette_SandacondaGigantamax, + .iconSprite = gMonIcon_SandacondaGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Sandaconda) .isGigantamax = TRUE, + .levelUpLearnset = sSandacondaLevelUpLearnset, + .teachableLearnset = sSandacondaTeachableLearnset, + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, + .formChangeTable = sSandacondaFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SILICOBRA #if P_FAMILY_CRAMORANT -#define CRAMORANT_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 55, \ - .baseSpeed = 85, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = { TYPE_FLYING, TYPE_WATER }, \ - .catchRate = 45, \ - .expYield = 166, \ - .evYield_SpDefense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Cramorant"), \ - .cryId = CRY_CRAMORANT, \ - .natDexNum = NATIONAL_DEX_CRAMORANT, \ - .categoryName = _("Gulp"), \ - .height = 8, \ - .weight = 180, \ - .pokemonScale = 366, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Cramorant, \ - LEARNSETS(Cramorant), \ - .formSpeciesIdTable = sCramorantFormSpeciesIdTable, \ - .formChangeTable = sCramorantFormChangeTable - [SPECIES_CRAMORANT] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "It's so strong that it can knock out some\n" "opponents in a single hit, but it also may\n" "forget what it's battling midfight."), - FRONT_PIC(Cramorant, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Cramorant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cramorant, 56, 64), + .backPic = gMonBackPic_Cramorant, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cramorant), - ICON(Cramorant, 0), + .palette = gMonPalette_Cramorant, + .shinyPalette = gMonShinyPalette_Cramorant, + .iconSprite = gMonIcon_Cramorant, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, [SPECIES_CRAMORANT_GULPING] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "Cramorant's gluttony led it to try\n" "to swallow an Arrokuda whole, which\n" "in turn led to Cramorant getting an\n" "Arrokuda stuck in its throat."), - FRONT_PIC(CramorantGulping, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CramorantGulping, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CramorantGulping, 64, 64), + .backPic = gMonBackPic_CramorantGulping, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CramorantGulping), - ICON(CramorantGulping, 0), + .palette = gMonPalette_CramorantGulping, + .shinyPalette = gMonShinyPalette_CramorantGulping, + .iconSprite = gMonIcon_CramorantGulping, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, [SPECIES_CRAMORANT_GORGING] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "This Cramorant has accidentally\n" "gotten a Pikachu lodged in its gullet.\n" "Cramorant is choking a little, but it\n" "isn't really bothered."), - FRONT_PIC(CramorantGorging, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CramorantGorging, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CramorantGorging, 64, 64), + .backPic = gMonBackPic_CramorantGorging, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CramorantGorging), - ICON(CramorantGorging, 0), + .palette = gMonPalette_CramorantGorging, + .shinyPalette = gMonShinyPalette_CramorantGorging, + .iconSprite = gMonIcon_CramorantGorging, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, #endif //P_FAMILY_CRAMORANT @@ -2171,7 +2739,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 66, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -2179,7 +2747,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Arrokuda"), @@ -2197,17 +2765,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arrokuda, 56, 32), + .frontPic = gMonFrontPic_Arrokuda, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Arrokuda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arrokuda, 48, 40), + .backPic = gMonBackPic_Arrokuda, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arrokuda), - ICON(Arrokuda, 2), - .footprint = gMonFootprint_Arrokuda, - LEARNSETS(Arrokuda), + .palette = gMonPalette_Arrokuda, + .shinyPalette = gMonShinyPalette_Arrokuda, + .iconSprite = gMonIcon_Arrokuda, + .iconPalIndex = 2, + FOOTPRINT(Arrokuda) + .levelUpLearnset = sArrokudaLevelUpLearnset, + .teachableLearnset = sArrokudaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_BARRASKEWDA}), }, @@ -2219,7 +2792,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 136, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, .expYield = 172, .evYield_Speed = 2, @@ -2227,7 +2800,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Barraskewd"), @@ -2245,17 +2818,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barraskewda, 56, 48), + .frontPic = gMonFrontPic_Barraskewda, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Barraskewda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Barraskewda, 64, 48), + .backPic = gMonBackPic_Barraskewda, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Barraskewda), - ICON(Barraskewda, 2), - .footprint = gMonFootprint_Barraskewda, - LEARNSETS(Barraskewda), + .palette = gMonPalette_Barraskewda, + .shinyPalette = gMonShinyPalette_Barraskewda, + .iconSprite = gMonIcon_Barraskewda, + .iconPalIndex = 2, + FOOTPRINT(Barraskewda) + .levelUpLearnset = sBarraskewdaLevelUpLearnset, + .teachableLearnset = sBarraskewdaTeachableLearnset, }, #endif //P_FAMILY_ARROKUDA @@ -2268,7 +2846,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 54, .baseSpDefense = 35, - .types = { TYPE_ELECTRIC, TYPE_POISON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), .catchRate = 75, .expYield = 48, .evYield_SpAttack = 1, @@ -2276,7 +2854,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Toxel"), @@ -2294,49 +2872,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxel, 40, 48), + .frontPic = gMonFrontPic_Toxel, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Toxel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toxel, 48, 56), + .backPic = gMonBackPic_Toxel, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toxel), - ICON(Toxel, 2), - .footprint = gMonFootprint_Toxel, - LEARNSETS(Toxel), + .palette = gMonPalette_Toxel, + .shinyPalette = gMonShinyPalette_Toxel, + .iconSprite = gMonIcon_Toxel, + .iconPalIndex = 2, + FOOTPRINT(Toxel) + .levelUpLearnset = sToxelLevelUpLearnset, + .teachableLearnset = sToxelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY_AMPED}, {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}), }, -#define TOXTRICITY_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 98, \ - .baseDefense = 70, \ - .baseSpeed = 75, \ - .baseSpAttack = 114, \ - .baseSpDefense = 70, \ - .types = { TYPE_ELECTRIC, TYPE_POISON }, \ - .catchRate = 45, \ - .expYield = 176, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Toxtricity"), \ - .natDexNum = NATIONAL_DEX_TOXTRICITY, \ - .categoryName = _("Punk"), \ - .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, \ - .formChangeTable = sToxtricityAmpedFormChangeTable - [SPECIES_TOXTRICITY_AMPED] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_AMPED, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 16, .weight = 400, .description = COMPOUND_STRING( @@ -2348,26 +2926,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityAmped, 48, 64), + .frontPic = gMonFrontPic_ToxtricityAmped, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Toxtricity, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityAmped, 56, 64), + .backPic = gMonBackPic_ToxtricityAmped, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityAmped), - ICON(ToxtricityAmped, 2), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityAmped), - + .palette = gMonPalette_ToxtricityAmped, + .shinyPalette = gMonShinyPalette_ToxtricityAmped, + .iconSprite = gMonIcon_ToxtricityAmped, + .iconPalIndex = 2, + FOOTPRINT(Toxtricity) + .levelUpLearnset = sToxtricityAmpedLevelUpLearnset, + .teachableLearnset = sToxtricityAmpedTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_AMPED, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 240, .weight = 0, .description = gToxtricityGigantamaxPokedexText, @@ -2375,26 +2977,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ToxtricityGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPic = gMonBackPic_ToxtricityGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityGigantamax), - ICON(ToxtricityGigantamax, 0), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityAmped), + .palette = gMonPalette_ToxtricityGigantamax, + .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, + .iconSprite = gMonIcon_ToxtricityGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Toxtricity) .isGigantamax = TRUE, + .levelUpLearnset = sToxtricityAmpedLevelUpLearnset, + .teachableLearnset = sToxtricityAmpedTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_LOW_KEY] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_LOW_KEY, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 16, .weight = 400, .description = COMPOUND_STRING( @@ -2405,25 +3032,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityLowKey, 48, 64), + .frontPic = gMonFrontPic_ToxtricityLowKey, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toxtricity, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityLowKey, 48, 64), + .backPic = gMonBackPic_ToxtricityLowKey, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityLowKey), - ICON(ToxtricityLowKey, 2), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityLowKey), + .palette = gMonPalette_ToxtricityLowKey, + .shinyPalette = gMonShinyPalette_ToxtricityLowKey, + .iconSprite = gMonIcon_ToxtricityLowKey, + .iconPalIndex = 2, + FOOTPRINT(Toxtricity) + .levelUpLearnset = sToxtricityLowKeyLevelUpLearnset, + .teachableLearnset = sToxtricityLowKeyTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_LOW_KEY, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 240, .weight = 0, .description = gToxtricityGigantamaxPokedexText, @@ -2431,18 +3083,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ToxtricityGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPic = gMonBackPic_ToxtricityGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityGigantamax), - ICON(ToxtricityGigantamax, 0), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityLowKey), + .palette = gMonPalette_ToxtricityGigantamax, + .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, + .iconSprite = gMonIcon_ToxtricityGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Toxtricity) .isGigantamax = TRUE, + .levelUpLearnset = sToxtricityLowKeyLevelUpLearnset, + .teachableLearnset = sToxtricityLowKeyTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TOXEL @@ -2456,7 +3115,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_BUG }, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -2464,7 +3123,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Sizzlipede"), @@ -2481,50 +3140,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sizzlipede, 48, 32), + .frontPic = gMonFrontPic_Sizzlipede, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Sizzlipede, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Sizzlipede, 40, 32), + .backPic = gMonBackPic_Sizzlipede, + .backPicSize = MON_COORDS_SIZE(40, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sizzlipede), - ICON(Sizzlipede, 0), - .footprint = gMonFootprint_Sizzlipede, - LEARNSETS(Sizzlipede), + .palette = gMonPalette_Sizzlipede, + .shinyPalette = gMonShinyPalette_Sizzlipede, + .iconSprite = gMonIcon_Sizzlipede, + .iconPalIndex = 0, + FOOTPRINT(Sizzlipede) + .levelUpLearnset = sSizzlipedeLevelUpLearnset, + .teachableLearnset = sSizzlipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_CENTISKORCH}), }, -#define CENTISKORCH_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 115, \ - .baseDefense = 65, \ - .baseSpeed = 65, \ - .baseSpAttack = 90, \ - .baseSpDefense = 90, \ - .types = { TYPE_FIRE, TYPE_BUG }, \ - .catchRate = 75, \ - .expYield = 184, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Centiskorc"), \ - .cryId = CRY_CENTISKORCH, \ - .natDexNum = NATIONAL_DEX_CENTISKORCH, \ - .categoryName = _("Radiator"), \ - .footprint = gMonFootprint_Centiskorch, \ - LEARNSETS(Centiskorch), \ - .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, \ - .formChangeTable = sCentiskorchFormChangeTable - [SPECIES_CENTISKORCH] = { - CENTISKORCH_MISC_INFO, + .baseHP = 100, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), + .catchRate = 75, + .expYield = 184, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Centiskorc"), + .cryId = CRY_CENTISKORCH, + .natDexNum = NATIONAL_DEX_CENTISKORCH, + .categoryName = _("Radiator"), .height = 30, .weight = 1200, .description = COMPOUND_STRING( @@ -2536,21 +3193,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Centiskorch, 64, 56), + .frontPic = gMonFrontPic_Centiskorch, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Centiskorch, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Centiskorch, 56, 64), + .backPic = gMonBackPic_Centiskorch, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Centiskorch), - ICON(Centiskorch, 0), + .palette = gMonPalette_Centiskorch, + .shinyPalette = gMonShinyPalette_Centiskorch, + .iconSprite = gMonIcon_Centiskorch, + .iconPalIndex = 0, + FOOTPRINT(Centiskorch) + .levelUpLearnset = sCentiskorchLevelUpLearnset, + .teachableLearnset = sCentiskorchTeachableLearnset, + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, + .formChangeTable = sCentiskorchFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CENTISKORCH_GIGANTAMAX] = { - CENTISKORCH_MISC_INFO, + .baseHP = 100, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), + .catchRate = 75, + .expYield = 184, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Centiskorc"), + .cryId = CRY_CENTISKORCH, + .natDexNum = NATIONAL_DEX_CENTISKORCH, + .categoryName = _("Radiator"), .height = 750, .weight = 0, .description = COMPOUND_STRING( @@ -2562,16 +3248,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CentiskorchGigantamax, 64, 64), + .frontPic = gMonFrontPic_CentiskorchGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_CentiskorchGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CentiskorchGigantamax, 64, 64), + .backPic = gMonBackPic_CentiskorchGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CentiskorchGigantamax), - ICON(CentiskorchGigantamax, 0), + .palette = gMonPalette_CentiskorchGigantamax, + .shinyPalette = gMonShinyPalette_CentiskorchGigantamax, + .iconSprite = gMonIcon_CentiskorchGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Centiskorch) .isGigantamax = TRUE, + .levelUpLearnset = sCentiskorchLevelUpLearnset, + .teachableLearnset = sCentiskorchTeachableLearnset, + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, + .formChangeTable = sCentiskorchFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SIZZLIPEDE @@ -2585,7 +3280,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 32, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 62, .evYield_Attack = 1, @@ -2593,7 +3288,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Clobbopus"), @@ -2611,17 +3306,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clobbopus, 48, 40), + .frontPic = gMonFrontPic_Clobbopus, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Clobbopus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clobbopus, 64, 40), + .backPic = gMonBackPic_Clobbopus, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Clobbopus), - ICON(Clobbopus, 0), - .footprint = gMonFootprint_Clobbopus, - LEARNSETS(Clobbopus), + .palette = gMonPalette_Clobbopus, + .shinyPalette = gMonShinyPalette_Clobbopus, + .iconSprite = gMonIcon_Clobbopus, + .iconPalIndex = 0, + FOOTPRINT(Clobbopus) + .levelUpLearnset = sClobbopusLevelUpLearnset, + .teachableLearnset = sClobbopusTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}), }, @@ -2633,7 +3333,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 42, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2641,7 +3341,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Grapploct"), @@ -2658,145 +3358,240 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Grapploct, 48, 56), + .frontPic = gMonFrontPic_Grapploct, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Grapploct, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grapploct, 56, 56), + .backPic = gMonBackPic_Grapploct, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grapploct), - ICON(Grapploct, 2), - .footprint = gMonFootprint_Grapploct, - LEARNSETS(Grapploct), + .palette = gMonPalette_Grapploct, + .shinyPalette = gMonShinyPalette_Grapploct, + .iconSprite = gMonIcon_Grapploct, + .iconPalIndex = 2, + FOOTPRINT(Grapploct) + .levelUpLearnset = sGrapploctLevelUpLearnset, + .teachableLearnset = sGrapploctTeachableLearnset, }, #endif //P_FAMILY_CLOBBOPUS #if P_FAMILY_SINISTEA -#define SINISTEA_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 74, \ - .baseSpDefense = 54, \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 120, \ - .expYield = 62, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sinistea"), \ - .cryId = CRY_SINISTEA, \ - .natDexNum = NATIONAL_DEX_SINISTEA, \ - .categoryName = _("Black Tea"), \ - .height = 1, \ - .weight = 2, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Sinistea, 40, 32), \ - .frontPicYOffset = 17, \ - .frontAnimFrames = sAnims_Sinistea, \ - BACK_PIC(Sinistea, 48, 32), \ - .backPicYOffset = 16, \ - PALETTES(Sinistea), \ - ICON(Sinistea, 2), \ - .footprint = gMonFootprint_Sinistea, \ - LEARNSETS(Sinistea), \ - .formSpeciesIdTable = sSinisteaFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_SINISTEA_PHONY] = { - SINISTEA_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sinistea"), + .cryId = CRY_SINISTEA, + .natDexNum = NATIONAL_DEX_SINISTEA, + .categoryName = _("Black Tea"), + .height = 1, + .weight = 2, .description = COMPOUND_STRING( "This Pokémon is said to have been born\n" "when a lonely spirit possessed a cold,\n" "leftover cup of tea."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistea, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sinistea, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, + .backPic = gMonBackPic_Sinistea, + .backPicSize = MON_COORDS_SIZE(48, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistea, + .shinyPalette = gMonShinyPalette_Sinistea, + .iconSprite = gMonIcon_Sinistea, + .iconPalIndex = 2, + FOOTPRINT(Sinistea) + .levelUpLearnset = sSinisteaLevelUpLearnset, + .teachableLearnset = sSinisteaTeachableLearnset, + .formSpeciesIdTable = sSinisteaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_CRACKED_POT, SPECIES_POLTEAGEIST_PHONY}), }, [SPECIES_SINISTEA_ANTIQUE] = { - SINISTEA_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sinistea"), + .cryId = CRY_SINISTEA, + .natDexNum = NATIONAL_DEX_SINISTEA, + .categoryName = _("Black Tea"), + .height = 1, + .weight = 2, .description = COMPOUND_STRING( "The swirl pattern in this Pokémon's\n" "body is its weakness. If it gets\n" "stirred, the swirl loses its shape, and\n" "Sinistea gets dizzy."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistea, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sinistea, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistea, + .backPicSize = MON_COORDS_SIZE(48, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistea, + .shinyPalette = gMonShinyPalette_Sinistea, + .iconSprite = gMonIcon_Sinistea, + .iconPalIndex = 2, + FOOTPRINT(Sinistea) + .levelUpLearnset = sSinisteaLevelUpLearnset, + .teachableLearnset = sSinisteaTeachableLearnset, + .formSpeciesIdTable = sSinisteaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}), }, -#define POLTEAGEIST_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 65, \ - .baseDefense = 65, \ - .baseSpeed = 70, \ - .baseSpAttack = 134, \ - .baseSpDefense = 114, \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 60, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Polteageis"), \ - .cryId = CRY_POLTEAGEIST, \ - .natDexNum = NATIONAL_DEX_POLTEAGEIST, \ - .categoryName = _("Black Tea"), \ - .height = 2, \ - .weight = 4, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Polteageist, 48, 48), \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Polteageist, \ - BACK_PIC(Polteageist, 64, 40), \ - .backPicYOffset = 13, \ - PALETTES(Polteageist), \ - ICON(Polteageist, 2), \ - .footprint = gMonFootprint_Polteageist, \ - LEARNSETS(Polteageist), \ - .formSpeciesIdTable = sPolteageistFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_POLTEAGEIST_PHONY] = { - POLTEAGEIST_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 134, + .baseSpDefense = 114, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Polteageis"), + .cryId = CRY_POLTEAGEIST, + .natDexNum = NATIONAL_DEX_POLTEAGEIST, + .categoryName = _("Black Tea"), + .height = 2, + .weight = 4, .description = COMPOUND_STRING( "This species lives in antique teapots.\n" "Most pots are forgeries, but on rare\n" "occasions, an authentic work is found."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Polteageist, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Polteageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, + .backPic = gMonBackPic_Polteageist, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Polteageist, + .shinyPalette = gMonShinyPalette_Polteageist, + .iconSprite = gMonIcon_Polteageist, + .iconPalIndex = 2, + FOOTPRINT(Polteageist) + .levelUpLearnset = sPolteageistLevelUpLearnset, + .teachableLearnset = sPolteageistTeachableLearnset, + .formSpeciesIdTable = sPolteageistFormSpeciesIdTable, }, [SPECIES_POLTEAGEIST_ANTIQUE] = { - POLTEAGEIST_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 134, + .baseSpDefense = 114, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Polteageis"), + .cryId = CRY_POLTEAGEIST, + .natDexNum = NATIONAL_DEX_POLTEAGEIST, + .categoryName = _("Black Tea"), + .height = 2, + .weight = 4, .description = COMPOUND_STRING( "Trainers Polteageist trusts will be\n" "allowed to experience its\n" "distinctive flavor and aroma firsthand by\n" "sampling just a tiny bit of its tea."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Polteageist, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Polteageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 11, + .backPic = gMonBackPic_Polteageist, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Polteageist, + .shinyPalette = gMonShinyPalette_Polteageist, + .iconSprite = gMonIcon_Polteageist, + .iconPalIndex = 2, + FOOTPRINT(Polteageist) + .levelUpLearnset = sPolteageistLevelUpLearnset, + .teachableLearnset = sPolteageistTeachableLearnset, + .formSpeciesIdTable = sPolteageistFormSpeciesIdTable, }, #endif //P_FAMILY_SINISTEA @@ -2809,7 +3604,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 39, .baseSpAttack = 56, .baseSpDefense = 53, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 235, .expYield = 53, .evYield_SpAttack = 1, @@ -2817,7 +3612,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hatenna"), @@ -2835,17 +3630,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hatenna, 48, 48), + .frontPic = gMonFrontPic_Hatenna, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hatenna, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hatenna, 40, 40), + .backPic = gMonBackPic_Hatenna, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hatenna), - ICON(Hatenna, 0), - .footprint = gMonFootprint_Hatenna, - LEARNSETS(Hatenna), + .palette = gMonPalette_Hatenna, + .shinyPalette = gMonShinyPalette_Hatenna, + .iconSprite = gMonIcon_Hatenna, + .iconPalIndex = 0, + FOOTPRINT(Hatenna) + .levelUpLearnset = sHatennaLevelUpLearnset, + .teachableLearnset = sHatennaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_HATTREM}), }, @@ -2857,7 +3657,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 49, .baseSpAttack = 86, .baseSpDefense = 73, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, .expYield = 130, .evYield_SpAttack = 2, @@ -2865,7 +3665,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hattrem"), @@ -2882,50 +3682,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hattrem, 56, 48), + .frontPic = gMonFrontPic_Hattrem, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Hattrem, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hattrem, 56, 48), + .backPic = gMonBackPic_Hattrem, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hattrem), - ICON(Hattrem, 0), - .footprint = gMonFootprint_Hattrem, - LEARNSETS(Hattrem), + .palette = gMonPalette_Hattrem, + .shinyPalette = gMonShinyPalette_Hattrem, + .iconSprite = gMonIcon_Hattrem, + .iconPalIndex = 0, + FOOTPRINT(Hattrem) + .levelUpLearnset = sHattremLevelUpLearnset, + .teachableLearnset = sHattremTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_HATTERENE}), }, -#define HATTERENE_MISC_INFO \ - .baseHP = 57, \ - .baseAttack = 90, \ - .baseDefense = 95, \ - .baseSpeed = 29, \ - .baseSpAttack = 136, \ - .baseSpDefense = 103, \ - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Hatterene"), \ - .cryId = CRY_HATTERENE, \ - .natDexNum = NATIONAL_DEX_HATTERENE, \ - .categoryName = _("Silent"), \ - .footprint = gMonFootprint_Hatterene, \ - LEARNSETS(Hatterene), \ - .formSpeciesIdTable = sHattereneFormSpeciesIdTable, \ - .formChangeTable = sHattereneFormChangeTable - [SPECIES_HATTERENE] = { - HATTERENE_MISC_INFO, + .baseHP = 57, + .baseAttack = 90, + .baseDefense = 95, + .baseSpeed = 29, + .baseSpAttack = 136, + .baseSpDefense = 103, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), + .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Hatterene"), + .cryId = CRY_HATTERENE, + .natDexNum = NATIONAL_DEX_HATTERENE, + .categoryName = _("Silent"), .height = 21, .weight = 51, .description = COMPOUND_STRING( @@ -2936,21 +3734,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Hatterene, 48, 64), + .frontPic = gMonFrontPic_Hatterene, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hatterene, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hatterene, 56, 64), + .backPic = gMonBackPic_Hatterene, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hatterene), - ICON(Hatterene, 0), + .palette = gMonPalette_Hatterene, + .shinyPalette = gMonShinyPalette_Hatterene, + .iconSprite = gMonIcon_Hatterene, + .iconPalIndex = 0, + FOOTPRINT(Hatterene) + .levelUpLearnset = sHattereneLevelUpLearnset, + .teachableLearnset = sHattereneTeachableLearnset, + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, + .formChangeTable = sHattereneFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_HATTERENE_GIGANTAMAX] = { - HATTERENE_MISC_INFO, + .baseHP = 57, + .baseAttack = 90, + .baseDefense = 95, + .baseSpeed = 29, + .baseSpAttack = 136, + .baseSpDefense = 103, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), + .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Hatterene"), + .cryId = CRY_HATTERENE, + .natDexNum = NATIONAL_DEX_HATTERENE, + .categoryName = _("Silent"), .height = 260, .weight = 0, .description = COMPOUND_STRING( @@ -2962,16 +3789,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(HattereneGigantamax, 64, 64), + .frontPic = gMonFrontPic_HattereneGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HattereneGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HattereneGigantamax, 64, 64), + .backPic = gMonBackPic_HattereneGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(HattereneGigantamax), - ICON(HattereneGigantamax, 0), + .palette = gMonPalette_HattereneGigantamax, + .shinyPalette = gMonShinyPalette_HattereneGigantamax, + .iconSprite = gMonIcon_HattereneGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Hatterene) .isGigantamax = TRUE, + .levelUpLearnset = sHattereneLevelUpLearnset, + .teachableLearnset = sHattereneTeachableLearnset, + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, + .formChangeTable = sHattereneFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_HATENNA @@ -2985,7 +3821,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), .catchRate = 255, .expYield = 53, .evYield_SpAttack = 1, @@ -2993,7 +3829,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Impidimp"), @@ -3011,17 +3847,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Impidimp, 48, 40), + .frontPic = gMonFrontPic_Impidimp, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Impidimp, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Impidimp, 48, 40), + .backPic = gMonBackPic_Impidimp, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Impidimp), - ICON(Impidimp, 0), - .footprint = gMonFootprint_Impidimp, - LEARNSETS(Impidimp), + .palette = gMonPalette_Impidimp, + .shinyPalette = gMonShinyPalette_Impidimp, + .iconSprite = gMonIcon_Impidimp, + .iconPalIndex = 0, + FOOTPRINT(Impidimp) + .levelUpLearnset = sImpidimpLevelUpLearnset, + .teachableLearnset = sImpidimpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MORGREM}), }, @@ -3033,7 +3874,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 75, .baseSpDefense = 55, - .types = { TYPE_DARK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), .catchRate = 120, .expYield = 130, .evYield_SpAttack = 2, @@ -3041,7 +3882,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Morgrem"), @@ -3059,50 +3900,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Morgrem, 48, 56), + .frontPic = gMonFrontPic_Morgrem, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Morgrem, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Morgrem, 56, 48), + .backPic = gMonBackPic_Morgrem, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Morgrem), - ICON(Morgrem, 0), - .footprint = gMonFootprint_Morgrem, - LEARNSETS(Morgrem), + .palette = gMonPalette_Morgrem, + .shinyPalette = gMonShinyPalette_Morgrem, + .iconSprite = gMonIcon_Morgrem, + .iconPalIndex = 0, + FOOTPRINT(Morgrem) + .levelUpLearnset = sMorgremLevelUpLearnset, + .teachableLearnset = sMorgremTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GRIMMSNARL}), }, -#define GRIMMSNARL_MISC_INFO \ - .baseHP = 95, \ - .baseAttack = 120, \ - .baseDefense = 65, \ - .baseSpeed = 60, \ - .baseSpAttack = 95, \ - .baseSpDefense = 75, \ - .types = { TYPE_DARK, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Grimmsnarl"), \ - .cryId = CRY_GRIMMSNARL, \ - .natDexNum = NATIONAL_DEX_GRIMMSNARL, \ - .categoryName = _("Bulk Up"), \ - .footprint = gMonFootprint_Grimmsnarl, \ - LEARNSETS(Grimmsnarl), \ - .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, \ - .formChangeTable = sGrimmsnarlFormChangeTable [SPECIES_GRIMMSNARL] = { - GRIMMSNARL_MISC_INFO, + .baseHP = 95, + .baseAttack = 120, + .baseDefense = 65, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimmsnarl"), + .cryId = CRY_GRIMMSNARL, + .natDexNum = NATIONAL_DEX_GRIMMSNARL, + .categoryName = _("Bulk Up"), .height = 15, .weight = 610, .description = COMPOUND_STRING( @@ -3113,21 +3953,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Grimmsnarl, 64, 64), + .frontPic = gMonFrontPic_Grimmsnarl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Grimmsnarl, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grimmsnarl, 64, 48), + .backPic = gMonBackPic_Grimmsnarl, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grimmsnarl), - ICON(Grimmsnarl, 0), + .palette = gMonPalette_Grimmsnarl, + .shinyPalette = gMonShinyPalette_Grimmsnarl, + .iconSprite = gMonIcon_Grimmsnarl, + .iconPalIndex = 0, + FOOTPRINT(Grimmsnarl) + .levelUpLearnset = sGrimmsnarlLevelUpLearnset, + .teachableLearnset = sGrimmsnarlTeachableLearnset, + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, + .formChangeTable = sGrimmsnarlFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_GRIMMSNARL_GIGANTAMAX] = { - GRIMMSNARL_MISC_INFO, + .baseHP = 95, + .baseAttack = 120, + .baseDefense = 65, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimmsnarl"), + .cryId = CRY_GRIMMSNARL, + .natDexNum = NATIONAL_DEX_GRIMMSNARL, + .categoryName = _("Bulk Up"), .height = 320, .weight = 0, .description = COMPOUND_STRING( @@ -3139,16 +4008,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(GrimmsnarlGigantamax, 64, 64), + .frontPic = gMonFrontPic_GrimmsnarlGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GrimmsnarlGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrimmsnarlGigantamax, 64, 64), + .backPic = gMonBackPic_GrimmsnarlGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrimmsnarlGigantamax), - ICON(GrimmsnarlGigantamax, 0), + .palette = gMonPalette_GrimmsnarlGigantamax, + .shinyPalette = gMonShinyPalette_GrimmsnarlGigantamax, + .iconSprite = gMonIcon_GrimmsnarlGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Grimmsnarl) .isGigantamax = TRUE, + .levelUpLearnset = sGrimmsnarlLevelUpLearnset, + .teachableLearnset = sGrimmsnarlTeachableLearnset, + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, + .formChangeTable = sGrimmsnarlFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_IMPIDIMP @@ -3162,7 +4040,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 34, .baseSpAttack = 50, .baseSpDefense = 61, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 54, .evYield_SpDefense = 1, @@ -3170,7 +4048,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Milcery"), @@ -3187,18 +4065,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Milcery, 40, 40), + .frontPic = gMonFrontPic_Milcery, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Milcery, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(Milcery, 56, 48), + .backPic = gMonBackPic_Milcery, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Milcery), - ICON(Milcery, 1), - .footprint = gMonFootprint_Milcery, - LEARNSETS(Milcery), + .palette = gMonPalette_Milcery, + .shinyPalette = gMonShinyPalette_Milcery, + .iconSprite = gMonIcon_Milcery, + .iconPalIndex = 1, + FOOTPRINT(Milcery) + .levelUpLearnset = sMilceryLevelUpLearnset, + .teachableLearnset = sMilceryTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM}, {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM}, {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM}, @@ -3217,7 +4100,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 64, \ .baseSpAttack = 110, \ .baseSpDefense = 121, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 100, \ .expYield = 173, \ .evYield_SpDefense = 2, \ @@ -3225,40 +4108,43 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), \ .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL }, \ .bodyColor = color -#define ALCREMIE_REGULAR_SPECIES_INFO(sweet, cream, color) \ - { \ - ALCREMIE_MISC_INFO(color), \ - .speciesName = _("Alcremie"), \ - .cryId = CRY_ALCREMIE, \ - .natDexNum = NATIONAL_DEX_ALCREMIE, \ - .categoryName = _("Cream"), \ - .height = 3, \ - .weight = 5, \ - .description = gAlcremie ##cream##PokedexText, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Alcremie ##sweet, 40, 56), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Alcremie, \ - BACK_PIC(Alcremie ##sweet, 48, 56), \ - .backPicYOffset = 9, \ - .palette = gMonPalette_Alcremie ##sweet##cream, \ - .shinyPalette = gMonShinyPalette_Alcremie ##sweet, \ - ICON(AlcremieStrawberryVanillaCream, 1), \ - .footprint = gMonFootprint_Alcremie, \ - LEARNSETS(Alcremie), \ - .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, \ - .formChangeTable = sAlcremieFormChangeTable, \ +#define ALCREMIE_REGULAR_SPECIES_INFO(sweet, cream, color) \ + { \ + ALCREMIE_MISC_INFO(color), \ + .speciesName = _("Alcremie"), \ + .cryId = CRY_ALCREMIE, \ + .natDexNum = NATIONAL_DEX_ALCREMIE, \ + .categoryName = _("Cream"), \ + .height = 3, \ + .weight = 5, \ + .description = gAlcremie ##cream##PokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Alcremie ##sweet, \ + .frontPicSize = MON_COORDS_SIZE(40, 56), \ + .frontPicYOffset = 7, \ + .frontAnimFrames = sAnims_Alcremie, \ + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ + .backPic = gMonBackPic_Alcremie ##sweet, \ + .backPicSize = MON_COORDS_SIZE(48, 56), \ + .backPicYOffset = 9, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_Alcremie ##sweet##cream, \ + .shinyPalette = gMonShinyPalette_Alcremie ##sweet, \ + .iconSprite = gMonIcon_AlcremieStrawberryVanillaCream, /*AlcremieStrawberry##cream##*/ \ + .iconPalIndex = 1, \ + FOOTPRINT(Alcremie) \ + .levelUpLearnset = sAlcremieLevelUpLearnset, \ + .teachableLearnset = sAlcremieTeachableLearnset, \ + .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, \ + .formChangeTable = sAlcremieFormChangeTable, \ } - //ICON(AlcremieStrawberry##cream##, 1), - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, VanillaCream, BODY_COLOR_WHITE), [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, RubyCream, BODY_COLOR_PINK), @@ -3327,7 +4213,6 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = [SPECIES_ALCREMIE_GIGANTAMAX] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW), - .isGigantamax = TRUE, .speciesName = _("Alcremie"), .cryId = CRY_ALCREMIE, .natDexNum = NATIONAL_DEX_ALCREMIE, @@ -3343,17 +4228,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AlcremieGigantamax, 64, 64), + .frontPic = gMonFrontPic_AlcremieGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AlcremieGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AlcremieGigantamax, 64, 64), + .backPic = gMonBackPic_AlcremieGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AlcremieGigantamax), - ICON(AlcremieGigantamax, 1), - .footprint = gMonFootprint_Alcremie, - LEARNSETS(Alcremie), + .palette = gMonPalette_AlcremieGigantamax, + .shinyPalette = gMonShinyPalette_AlcremieGigantamax, + .iconSprite = gMonIcon_AlcremieGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Alcremie) + .isGigantamax = TRUE, + .levelUpLearnset = sAlcremieLevelUpLearnset, + .teachableLearnset = sAlcremieTeachableLearnset, .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, .formChangeTable = sAlcremieFormChangeTable, }, @@ -3369,7 +4260,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 165, .evYield_Attack = 2, @@ -3378,7 +4269,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Falinks"), @@ -3394,17 +4285,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Falinks, 56, 48), + .frontPic = gMonFrontPic_Falinks, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Falinks, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Falinks, 64, 40), + .backPic = gMonBackPic_Falinks, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Falinks), - ICON(Falinks, 0), - .footprint = gMonFootprint_Falinks, - LEARNSETS(Falinks), + .palette = gMonPalette_Falinks, + .shinyPalette = gMonShinyPalette_Falinks, + .iconSprite = gMonIcon_Falinks, + .iconPalIndex = 0, + FOOTPRINT(Falinks) + .levelUpLearnset = sFalinksLevelUpLearnset, + .teachableLearnset = sFalinksTeachableLearnset, }, #endif //P_FAMILY_FALINKS @@ -3417,7 +4313,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 15, .baseSpAttack = 91, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 75, .expYield = 152, .evYield_Attack = 2, @@ -3425,7 +4321,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_NONE, ABILITY_ELECTRIC_SURGE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Pincurchin"), @@ -3442,17 +4338,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pincurchin, 40, 40), + .frontPic = gMonFrontPic_Pincurchin, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Pincurchin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pincurchin, 56, 40), + .backPic = gMonBackPic_Pincurchin, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pincurchin), - ICON(Pincurchin, 0), - .footprint = gMonFootprint_Pincurchin, - LEARNSETS(Pincurchin), + .palette = gMonPalette_Pincurchin, + .shinyPalette = gMonShinyPalette_Pincurchin, + .iconSprite = gMonIcon_Pincurchin, + .iconPalIndex = 0, + FOOTPRINT(Pincurchin) + .levelUpLearnset = sPincurchinLevelUpLearnset, + .teachableLearnset = sPincurchinTeachableLearnset, }, #endif //P_FAMILY_PINCURCHIN @@ -3465,7 +4366,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 45, .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_BUG }, + .types = MON_TYPES(TYPE_ICE, TYPE_BUG), .catchRate = 190, .expYield = 37, .evYield_SpAttack = 1, @@ -3474,7 +4375,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Snom"), @@ -3492,17 +4393,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snom, 40, 32), + .frontPic = gMonFrontPic_Snom, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 20, .frontAnimFrames = sAnims_Snom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Snom, 48, 32), + .backPic = gMonBackPic_Snom, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Snom), - ICON(Snom, 0), - .footprint = gMonFootprint_Snom, - LEARNSETS(Snom), + .palette = gMonPalette_Snom, + .shinyPalette = gMonShinyPalette_Snom, + .iconSprite = gMonIcon_Snom, + .iconPalIndex = 0, + FOOTPRINT(Snom) + .levelUpLearnset = sSnomLevelUpLearnset, + .teachableLearnset = sSnomTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_FROSMOTH}), }, @@ -3514,7 +4420,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 65, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_BUG }, + .types = MON_TYPES(TYPE_ICE, TYPE_BUG), .catchRate = 75, .expYield = 166, .evYield_SpAttack = 2, @@ -3522,7 +4428,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Frosmoth"), @@ -3540,18 +4446,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frosmoth, 64, 56), + .frontPic = gMonFrontPic_Frosmoth, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Frosmoth, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(Frosmoth, 64, 64), + .backPic = gMonBackPic_Frosmoth, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Frosmoth), - ICON(Frosmoth, 0), - .footprint = gMonFootprint_Frosmoth, - LEARNSETS(Frosmoth), + .palette = gMonPalette_Frosmoth, + .shinyPalette = gMonShinyPalette_Frosmoth, + .iconSprite = gMonIcon_Frosmoth, + .iconPalIndex = 0, + FOOTPRINT(Frosmoth) + .levelUpLearnset = sFrosmothLevelUpLearnset, + .teachableLearnset = sFrosmothTeachableLearnset, }, #endif //P_FAMILY_SNOM @@ -3564,7 +4475,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 60, .expYield = 165, .evYield_Defense = 2, @@ -3572,8 +4483,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_POWER_SPOT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_POWER_SPOT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Stonjourne"), .cryId = CRY_STONJOURNER, @@ -3590,254 +4501,350 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Stonjourner, 48, 64), + .frontPic = gMonFrontPic_Stonjourner, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Stonjourner, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stonjourner, 64, 56), + .backPic = gMonBackPic_Stonjourner, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stonjourner), - ICON(Stonjourner, 2), - .footprint = gMonFootprint_Stonjourner, - LEARNSETS(Stonjourner), + .palette = gMonPalette_Stonjourner, + .shinyPalette = gMonShinyPalette_Stonjourner, + .iconSprite = gMonIcon_Stonjourner, + .iconPalIndex = 2, + FOOTPRINT(Stonjourner) + .levelUpLearnset = sStonjournerLevelUpLearnset, + .teachableLearnset = sStonjournerTeachableLearnset, }, #endif //P_FAMILY_STONJOURNER #if P_FAMILY_EISCUE -#define EISCUE_MISC_INFO \ - .types = { TYPE_ICE, TYPE_ICE }, \ - .catchRate = 60, \ - .expYield = 165, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ICE_FACE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Eiscue"), \ - .natDexNum = NATIONAL_DEX_EISCUE, \ - .categoryName = _("Penguin"), \ - .height = 14, \ - .weight = 890, \ - .pokemonScale = 265, \ - .pokemonOffset = 2, \ - .trainerScale = 262, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Eiscue, \ - LEARNSETS(Eiscue), \ - .formSpeciesIdTable = sEiscueFormSpeciesIdTable, \ - .formChangeTable = sEiscueFormChangeTable - [SPECIES_EISCUE_ICE_FACE] = { - EISCUE_MISC_INFO, .baseHP = 75, .baseAttack = 80, .baseDefense = 110, .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 165, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_ICE_FACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Eiscue"), .cryId = CRY_EISCUE_ICE_FACE, + .natDexNum = NATIONAL_DEX_EISCUE, + .categoryName = _("Penguin"), + .height = 14, + .weight = 890, .description = COMPOUND_STRING( "It drifted in on the flow of ocean waters\n" "from a frigid place. It keeps its head\n" "iced constantly to make sure it stays\n" "nice and cold."), - FRONT_PIC(EiscueIceFace, 40, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_EiscueIceFace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EiscueIceFace, 48, 64), + .backPic = gMonBackPic_EiscueIceFace, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EiscueIceFace), - ICON(EiscueIceFace, 0), + .palette = gMonPalette_EiscueIceFace, + .shinyPalette = gMonShinyPalette_EiscueIceFace, + .iconSprite = gMonIcon_EiscueIceFace, + .iconPalIndex = 0, + FOOTPRINT(Eiscue) + .levelUpLearnset = sEiscueLevelUpLearnset, + .teachableLearnset = sEiscueTeachableLearnset, + .formSpeciesIdTable = sEiscueFormSpeciesIdTable, + .formChangeTable = sEiscueFormChangeTable, }, [SPECIES_EISCUE_NOICE_FACE] = { - EISCUE_MISC_INFO, .baseHP = 75, .baseAttack = 80, .baseDefense = 70, .baseSpeed = 130, .baseSpAttack = 65, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 165, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_ICE_FACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Eiscue"), .cryId = CRY_EISCUE_NOICE_FACE, + .natDexNum = NATIONAL_DEX_EISCUE, + .categoryName = _("Penguin"), + .height = 14, + .weight = 890, .description = COMPOUND_STRING( "The hair on its head connects to\n" "the surface of its brain. When this\n" "Pokémon has something on its mind,\n" "its hair chills the air around it."), - FRONT_PIC(EiscueNoiceFace, 40, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_EiscueNoiceFace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EiscueNoiceFace, 40, 64), + .backPic = gMonBackPic_EiscueNoiceFace, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EiscueNoiceFace), - ICON(EiscueNoiceFace, 0), + .palette = gMonPalette_EiscueNoiceFace, + .shinyPalette = gMonShinyPalette_EiscueNoiceFace, + .iconSprite = gMonIcon_EiscueNoiceFace, + .iconPalIndex = 0, + FOOTPRINT(Eiscue) + .levelUpLearnset = sEiscueLevelUpLearnset, + .teachableLearnset = sEiscueTeachableLearnset, + .formSpeciesIdTable = sEiscueFormSpeciesIdTable, + .formChangeTable = sEiscueFormChangeTable, }, #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -#define INDEEDEE_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_NORMAL }, \ - .catchRate = 30, \ - .expYield = 166, \ - .eggCycles = 40, \ - .friendship = 140, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Indeedee"), \ - .natDexNum = NATIONAL_DEX_INDEEDEE, \ - .categoryName = _("Emotion"), \ - .height = 9, \ - .weight = 280, \ - .pokemonScale = 338, \ - .pokemonOffset = 8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Indeedee, \ - .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable - [SPECIES_INDEEDEE_MALE] = { - INDEEDEE_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 55, .baseSpeed = 95, .baseSpAttack = 105, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_NORMAL), + .catchRate = 30, + .expYield = 166, .evYield_SpAttack = 2, .genderRatio = MON_MALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_INNER_FOCUS, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Indeedee"), .cryId = CRY_INDEEDEE_MALE, + .natDexNum = NATIONAL_DEX_INDEEDEE, + .categoryName = _("Emotion"), + .height = 9, + .weight = 280, .description = COMPOUND_STRING( "It uses the horns on its head to sense the\n" "emotions of others. Males will act as\n" "valets for those they serve, looking\n" "after their every need."), - FRONT_PIC(IndeedeeMale, 40, 56), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_IndeedeeMale, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IndeedeeMale, 56, 56), + .backPic = gMonBackPic_IndeedeeMale, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IndeedeeMale), - ICON(IndeedeeMale, 2), - LEARNSETS(IndeedeeMale), + .palette = gMonPalette_IndeedeeMale, + .shinyPalette = gMonShinyPalette_IndeedeeMale, + .iconSprite = gMonIcon_IndeedeeMale, + .iconPalIndex = 2, + FOOTPRINT(Indeedee) + .levelUpLearnset = sIndeedeeMaleLevelUpLearnset, + .teachableLearnset = sIndeedeeMaleTeachableLearnset, + .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, [SPECIES_INDEEDEE_FEMALE] = { - INDEEDEE_MISC_INFO, .baseHP = 70, .baseAttack = 55, .baseDefense = 65, .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_NORMAL), + .catchRate = 30, + .expYield = 166, .evYield_SpDefense = 2, .genderRatio = MON_FEMALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_OWN_TEMPO, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Indeedee"), .cryId = CRY_INDEEDEE_FEMALE, + .natDexNum = NATIONAL_DEX_INDEEDEE, + .categoryName = _("Emotion"), + .height = 9, + .weight = 280, .description = COMPOUND_STRING( "They diligently serve people and\n" "Pokémon so they can gather feelings\n" "of gratitude. The females are\n" "particularly good at babysitting."), - FRONT_PIC(IndeedeeFemale, 40, 48), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_IndeedeeFemale, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IndeedeeFemale, 64, 56), + .backPic = gMonBackPic_IndeedeeFemale, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IndeedeeFemale), - ICON(IndeedeeFemale, 2), - LEARNSETS(IndeedeeFemale), + .palette = gMonPalette_IndeedeeFemale, + .shinyPalette = gMonShinyPalette_IndeedeeFemale, + .iconSprite = gMonIcon_IndeedeeFemale, + .iconPalIndex = 2, + FOOTPRINT(Indeedee) + .levelUpLearnset = sIndeedeeFemaleLevelUpLearnset, + .teachableLearnset = sIndeedeeFemaleTeachableLearnset, + .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, #endif //P_FAMILY_INDEEDEE #if P_FAMILY_MORPEKO -#define MORPEKO_MISC_INFO \ - .baseHP = 58, \ - .baseAttack = 95, \ - .baseDefense = 58, \ - .baseSpeed = 97, \ - .baseSpAttack = 70, \ - .baseSpDefense = 58, \ - .types = { TYPE_ELECTRIC, TYPE_DARK }, \ - .catchRate = 180, \ - .expYield = 153, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Morpeko"), \ - .natDexNum = NATIONAL_DEX_MORPEKO, \ - .categoryName = _("Two-Sided"), \ - .height = 3, \ - .weight = 30, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Morpeko, \ - LEARNSETS(Morpeko), \ - .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, \ - .formChangeTable = sMorpekoFormChangeTable - [SPECIES_MORPEKO_FULL_BELLY] = { - MORPEKO_MISC_INFO, + .baseHP = 58, + .baseAttack = 95, + .baseDefense = 58, + .baseSpeed = 97, + .baseSpAttack = 70, + .baseSpDefense = 58, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DARK), + .catchRate = 180, + .expYield = 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Morpeko"), .cryId = CRY_MORPEKO_FULL_BELLY, + .natDexNum = NATIONAL_DEX_MORPEKO, + .categoryName = _("Two-Sided"), + .height = 3, + .weight = 30, .description = COMPOUND_STRING( "As it eats the seeds stored up in its\n" "pocket-like pouches, this Pokémon is not\n" "just satisfying its constant hunger. It's\n" "also generating electricity."), - FRONT_PIC(MorpekoFullBelly, 32, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MorpekoFullBelly, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Morpeko, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MorpekoFullBelly, 48, 56), + .backPic = gMonBackPic_MorpekoFullBelly, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MorpekoFullBelly), - ICON(MorpekoFullBelly, 2), + .palette = gMonPalette_MorpekoFullBelly, + .shinyPalette = gMonShinyPalette_MorpekoFullBelly, + .iconSprite = gMonIcon_MorpekoFullBelly, + .iconPalIndex = 2, + FOOTPRINT(Morpeko) + .levelUpLearnset = sMorpekoLevelUpLearnset, + .teachableLearnset = sMorpekoTeachableLearnset, + .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, + .formChangeTable = sMorpekoFormChangeTable, }, [SPECIES_MORPEKO_HANGRY] = { - MORPEKO_MISC_INFO, + .baseHP = 58, + .baseAttack = 95, + .baseDefense = 58, + .baseSpeed = 97, + .baseSpAttack = 70, + .baseSpDefense = 58, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DARK), + .catchRate = 180, + .expYield = 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Morpeko"), .cryId = CRY_MORPEKO_HANGRY, + .natDexNum = NATIONAL_DEX_MORPEKO, + .categoryName = _("Two-Sided"), + .height = 3, + .weight = 30, .description = COMPOUND_STRING( "Intense hunger drives it to\n" "extremes of violence, and the electricity\n" "in its cheek sacs has converted into\n" "a Dark-type energy."), - FRONT_PIC(MorpekoHangry, 32, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MorpekoHangry, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Morpeko, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MorpekoHangry, 48, 56), + .backPic = gMonBackPic_MorpekoHangry, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MorpekoHangry), - ICON(MorpekoHangry, 2), + .palette = gMonPalette_MorpekoHangry, + .shinyPalette = gMonShinyPalette_MorpekoHangry, + .iconSprite = gMonIcon_MorpekoHangry, + .iconPalIndex = 2, + FOOTPRINT(Morpeko) + .levelUpLearnset = sMorpekoLevelUpLearnset, + .teachableLearnset = sMorpekoTeachableLearnset, + .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, + .formChangeTable = sMorpekoFormChangeTable, }, #endif //P_FAMILY_MORPEKO @@ -3850,7 +4857,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 190, .expYield = 66, .evYield_Attack = 1, @@ -3859,7 +4866,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cufant"), @@ -3877,51 +4884,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cufant, 56, 48), + .frontPic = gMonFrontPic_Cufant, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Cufant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cufant, 64, 48), + .backPic = gMonBackPic_Cufant, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cufant), - ICON(Cufant, 0), - .footprint = gMonFootprint_Cufant, - LEARNSETS(Cufant), + .palette = gMonPalette_Cufant, + .shinyPalette = gMonShinyPalette_Cufant, + .iconSprite = gMonIcon_Cufant, + .iconPalIndex = 0, + FOOTPRINT(Cufant) + .levelUpLearnset = sCufantLevelUpLearnset, + .teachableLearnset = sCufantTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COPPERAJAH}), }, -#define COPPERAJAH_MISC_INFO \ - .baseHP = 122, \ - .baseAttack = 130, \ - .baseDefense = 69, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 69, \ - .types = { TYPE_STEEL, TYPE_STEEL }, \ - .catchRate = 90, \ - .expYield = 175, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_LAGGING_TAIL, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Copperajah"), \ - .cryId = CRY_COPPERAJAH, \ - .natDexNum = NATIONAL_DEX_COPPERAJAH, \ - .categoryName = _("Copperderm"), \ - .footprint = gMonFootprint_Copperajah, \ - LEARNSETS(Copperajah), \ - .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, \ - .formChangeTable = sCopperajahFormChangeTable - [SPECIES_COPPERAJAH] = { - COPPERAJAH_MISC_INFO, + .baseHP = 122, + .baseAttack = 130, + .baseDefense = 69, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 69, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 90, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Copperajah"), + .cryId = CRY_COPPERAJAH, + .natDexNum = NATIONAL_DEX_COPPERAJAH, + .categoryName = _("Copperderm"), .height = 30, .weight = 6500, .description = COMPOUND_STRING( @@ -3932,21 +4937,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Copperajah, 64, 56), + .frontPic = gMonFrontPic_Copperajah, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Copperajah, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Copperajah, 64, 32), + .backPic = gMonBackPic_Copperajah, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Copperajah), - ICON(Copperajah, 0), + .palette = gMonPalette_Copperajah, + .shinyPalette = gMonShinyPalette_Copperajah, + .iconSprite = gMonIcon_Copperajah, + .iconPalIndex = 0, + FOOTPRINT(Copperajah) + .levelUpLearnset = sCopperajahLevelUpLearnset, + .teachableLearnset = sCopperajahTeachableLearnset, + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, + .formChangeTable = sCopperajahFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_COPPERAJAH_GIGANTAMAX] = { - COPPERAJAH_MISC_INFO, + .baseHP = 122, + .baseAttack = 130, + .baseDefense = 69, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 69, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 90, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Copperajah"), + .cryId = CRY_COPPERAJAH, + .natDexNum = NATIONAL_DEX_COPPERAJAH, + .categoryName = _("Copperderm"), .height = 230, .weight = 0, .description = COMPOUND_STRING( @@ -3958,16 +4993,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CopperajahGigantamax, 64, 64), + .frontPic = gMonFrontPic_CopperajahGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_CopperajahGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CopperajahGigantamax, 64, 64), + .backPic = gMonBackPic_CopperajahGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CopperajahGigantamax), - ICON(CopperajahGigantamax, 0), + .palette = gMonPalette_CopperajahGigantamax, + .shinyPalette = gMonShinyPalette_CopperajahGigantamax, + .iconSprite = gMonIcon_CopperajahGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Copperajah) .isGigantamax = TRUE, + .levelUpLearnset = sCopperajahLevelUpLearnset, + .teachableLearnset = sCopperajahTeachableLearnset, + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, + .formChangeTable = sCopperajahFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CUFANT @@ -3981,7 +5025,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -3989,7 +5033,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracozolt"), @@ -4007,17 +5051,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Dracozolt, 64, 64), + .frontPic = gMonFrontPic_Dracozolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dracozolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dracozolt, 64, 56), + .backPic = gMonBackPic_Dracozolt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dracozolt), - ICON(Dracozolt, 1), - .footprint = gMonFootprint_Dracozolt, - LEARNSETS(Dracozolt), + .palette = gMonPalette_Dracozolt, + .shinyPalette = gMonShinyPalette_Dracozolt, + .iconSprite = gMonIcon_Dracozolt, + .iconPalIndex = 1, + FOOTPRINT(Dracozolt) + .levelUpLearnset = sDracozoltLevelUpLearnset, + .teachableLearnset = sDracozoltTeachableLearnset, }, #endif //P_FAMILY_DRACOZOLT @@ -4030,7 +5079,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 55, .baseSpAttack = 90, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ICE }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_ICE), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -4038,7 +5087,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctozolt"), @@ -4055,17 +5104,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Arctozolt, 56, 64), + .frontPic = gMonFrontPic_Arctozolt, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Arctozolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctozolt, 56, 48), + .backPic = gMonBackPic_Arctozolt, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctozolt), - ICON(Arctozolt, 2), - .footprint = gMonFootprint_Arctozolt, - LEARNSETS(Arctozolt), + .palette = gMonPalette_Arctozolt, + .shinyPalette = gMonShinyPalette_Arctozolt, + .iconSprite = gMonIcon_Arctozolt, + .iconPalIndex = 2, + FOOTPRINT(Arctozolt) + .levelUpLearnset = sArctozoltLevelUpLearnset, + .teachableLearnset = sArctozoltTeachableLearnset, }, #endif //P_FAMILY_ARCTOZOLT @@ -4078,7 +5132,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 45, .expYield = 177, .evYield_Defense = 2, @@ -4086,7 +5140,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracovish"), @@ -4104,17 +5158,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Dracovish, 48, 64), + .frontPic = gMonFrontPic_Dracovish, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dracovish, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dracovish, 64, 64), + .backPic = gMonBackPic_Dracovish, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dracovish), - ICON(Dracovish, 0), - .footprint = gMonFootprint_Dracovish, - LEARNSETS(Dracovish), + .palette = gMonPalette_Dracovish, + .shinyPalette = gMonShinyPalette_Dracovish, + .iconSprite = gMonIcon_Dracovish, + .iconPalIndex = 0, + FOOTPRINT(Dracovish) + .levelUpLearnset = sDracovishLevelUpLearnset, + .teachableLearnset = sDracovishTeachableLearnset, }, #endif //P_FAMILY_DRACOVISH @@ -4127,7 +5186,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 55, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 45, .expYield = 177, .evYield_Defense = 2, @@ -4135,7 +5194,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctovish"), @@ -4153,51 +5212,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Arctovish, 64, 64), + .frontPic = gMonFrontPic_Arctovish, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Arctovish, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctovish, 64, 48), + .backPic = gMonBackPic_Arctovish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctovish), - ICON(Arctovish, 0), - .footprint = gMonFootprint_Arctovish, - LEARNSETS(Arctovish), + .palette = gMonPalette_Arctovish, + .shinyPalette = gMonShinyPalette_Arctovish, + .iconSprite = gMonIcon_Arctovish, + .iconPalIndex = 0, + FOOTPRINT(Arctovish) + .levelUpLearnset = sArctovishLevelUpLearnset, + .teachableLearnset = sArctovishTeachableLearnset, }, #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON -#define DURALUDON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 85, \ - .baseSpAttack = 120, \ - .baseSpDefense = 50, \ - .types = { TYPE_STEEL, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 30, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Duraludon"), \ - .cryId = CRY_DURALUDON, \ - .natDexNum = NATIONAL_DEX_DURALUDON, \ - .categoryName = _("Alloy"), \ - .footprint = gMonFootprint_Duraludon, \ - LEARNSETS(Duraludon), \ - .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, \ - .formChangeTable = sDuraludonFormChangeTable - [SPECIES_DURALUDON] = { - DURALUDON_MISC_INFO, + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 120, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 45, + .expYield = 187, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Duraludon"), + .cryId = CRY_DURALUDON, + .natDexNum = NATIONAL_DEX_DURALUDON, + .categoryName = _("Alloy"), .height = 18, .weight = 400, .description = COMPOUND_STRING( @@ -4208,21 +5265,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Duraludon, 56, 64), + .frontPic = gMonFrontPic_Duraludon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Duraludon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Duraludon, 64, 64), + .backPic = gMonBackPic_Duraludon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Duraludon), - ICON(Duraludon, 0), + .palette = gMonPalette_Duraludon, + .shinyPalette = gMonShinyPalette_Duraludon, + .iconSprite = gMonIcon_Duraludon, + .iconPalIndex = 0, + FOOTPRINT(Duraludon) + .levelUpLearnset = sDuraludonLevelUpLearnset, + .teachableLearnset = sDuraludonTeachableLearnset, + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, + .formChangeTable = sDuraludonFormChangeTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_METAL_ALLOY, SPECIES_ARCHALUDON}), }, #if P_GIGANTAMAX_FORMS [SPECIES_DURALUDON_GIGANTAMAX] = { - DURALUDON_MISC_INFO, + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 120, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 45, + .expYield = 187, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Duraludon"), + .cryId = CRY_DURALUDON, + .natDexNum = NATIONAL_DEX_DURALUDON, + .categoryName = _("Alloy"), .height = 430, .weight = 0, .description = COMPOUND_STRING( @@ -4234,18 +5321,81 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(DuraludonGigantamax, 64, 64), + .frontPic = gMonFrontPic_DuraludonGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DuraludonGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DuraludonGigantamax, 64, 64), + .backPic = gMonBackPic_DuraludonGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DuraludonGigantamax), - ICON(DuraludonGigantamax, 0), + .palette = gMonPalette_DuraludonGigantamax, + .shinyPalette = gMonShinyPalette_DuraludonGigantamax, + .iconSprite = gMonIcon_DuraludonGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Duraludon) .isGigantamax = TRUE, + .levelUpLearnset = sDuraludonLevelUpLearnset, + .teachableLearnset = sDuraludonTeachableLearnset, + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, + .formChangeTable = sDuraludonFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + [SPECIES_ARCHALUDON] = + { + .baseHP = 90, + .baseAttack = 105, + .baseDefense = 130, + .baseSpeed = 85, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 10, + .expYield = 300, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_STAMINA, ABILITY_STURDY, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Archaludon"), + .cryId = CRY_ARCHALUDON, + .natDexNum = NATIONAL_DEX_ARCHALUDON, + .categoryName = _("Alloy"), + .height = 20, + .weight = 600, + .description = COMPOUND_STRING( + "It gathers static electricity\n" + "from its surroundings. The beams\n" + "it launches when down on all fours\n" + "are tremendously powerful."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Archaludon, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Archaludon, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Archaludon, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Archaludon, + .shinyPalette = gMonShinyPalette_Archaludon, + .iconSprite = gMonIcon_Archaludon, + .iconPalIndex = 0, + //FOOTPRINT(Archaludon) + .levelUpLearnset = sArchaludonLevelUpLearnset, + .teachableLearnset = sArchaludonTeachableLearnset, + }, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -4257,7 +5407,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 82, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 54, .evYield_Speed = 1, @@ -4265,7 +5415,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dreepy"), @@ -4283,18 +5433,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dreepy, 48, 40), + .frontPic = gMonFrontPic_Dreepy, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Dreepy, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Dreepy, 56, 40), + .backPic = gMonBackPic_Dreepy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dreepy), - ICON(Dreepy, 0), - .footprint = gMonFootprint_Dreepy, - LEARNSETS(Dreepy), + .palette = gMonPalette_Dreepy, + .shinyPalette = gMonShinyPalette_Dreepy, + .iconSprite = gMonIcon_Dreepy, + .iconPalIndex = 0, + FOOTPRINT(Dreepy) + .levelUpLearnset = sDreepyLevelUpLearnset, + .teachableLearnset = sDreepyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_DRAKLOAK}), }, @@ -4306,7 +5461,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 102, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 144, .evYield_Speed = 2, @@ -4314,7 +5469,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Drakloak"), @@ -4331,18 +5486,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Drakloak, 64, 56), + .frontPic = gMonFrontPic_Drakloak, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drakloak, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Drakloak, 64, 48), + .backPic = gMonBackPic_Drakloak, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drakloak), - ICON(Drakloak, 0), - .footprint = gMonFootprint_Drakloak, - LEARNSETS(Drakloak), + .palette = gMonPalette_Drakloak, + .shinyPalette = gMonShinyPalette_Drakloak, + .iconSprite = gMonIcon_Drakloak, + .iconPalIndex = 0, + FOOTPRINT(Drakloak) + .levelUpLearnset = sDrakloakLevelUpLearnset, + .teachableLearnset = sDrakloakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 60, SPECIES_DRAGAPULT}), }, @@ -4354,7 +5514,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 142, .baseSpAttack = 100, .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 300, .evYield_Speed = 3, @@ -4362,7 +5522,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dragapult"), @@ -4380,274 +5540,358 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dragapult, 64, 64), + .frontPic = gMonFrontPic_Dragapult, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dragapult, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(Dragapult, 64, 56), + .backPic = gMonBackPic_Dragapult, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dragapult), - ICON(Dragapult, 0), - .footprint = gMonFootprint_Dragapult, - LEARNSETS(Dragapult), + .palette = gMonPalette_Dragapult, + .shinyPalette = gMonShinyPalette_Dragapult, + .iconSprite = gMonIcon_Dragapult, + .iconPalIndex = 0, + FOOTPRINT(Dragapult) + .levelUpLearnset = sDragapultLevelUpLearnset, + .teachableLearnset = sDragapultTeachableLearnset, }, #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN -#define ZACIAN_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Zacian"), \ - .natDexNum = NATIONAL_DEX_ZACIAN, \ - .categoryName = _("Warrior"), \ - .height = 28, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zacian, \ - LEARNSETS(Zacian), \ - .formSpeciesIdTable = sZacianFormSpeciesIdTable, \ - .formChangeTable = sZacianFormChangeTable - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = { - ZACIAN_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = 115, .baseSpeed = 138, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 10, .expYield = 335, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Zacian"), .cryId = CRY_ZACIAN_HERO_OF_MANY_BATTLES, + .natDexNum = NATIONAL_DEX_ZACIAN, + .categoryName = _("Warrior"), + .height = 28, .weight = 1100, .description = COMPOUND_STRING( "Known as a legendary hero, this Pokémon\n" "absorbs metal particles, transforming them\n" "into a weapon it uses to battle."), - FRONT_PIC(ZacianHeroOfManyBattles, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZacianHeroOfManyBattles, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZacianHeroOfManyBattles, 64, 56), + .backPic = gMonBackPic_ZacianHeroOfManyBattles, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZacianHeroOfManyBattles), - ICON(ZacianHeroOfManyBattles, 2), + .palette = gMonPalette_ZacianHeroOfManyBattles, + .shinyPalette = gMonShinyPalette_ZacianHeroOfManyBattles, + .iconSprite = gMonIcon_ZacianHeroOfManyBattles, + .iconPalIndex = 2, + FOOTPRINT(Zacian) + .isLegendary = TRUE, + .levelUpLearnset = sZacianLevelUpLearnset, + .teachableLearnset = sZacianTeachableLearnset, + .formSpeciesIdTable = sZacianFormSpeciesIdTable, + .formChangeTable = sZacianFormChangeTable, }, [SPECIES_ZACIAN_CROWNED_SWORD] = { - ZACIAN_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, .baseDefense = 115, .baseSpeed = 148, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), + .catchRate = 10, .expYield = 360, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Zacian"), .cryId = CRY_ZACIAN_CROWNED_SWORD, + .natDexNum = NATIONAL_DEX_ZACIAN, + .categoryName = _("Warrior"), + .height = 28, .weight = 3550, .description = COMPOUND_STRING( "Able to cut down anything with a\n" "single strike, it became known as the\n" "Fairy King's Sword, and it inspired\n" "awe in friend and foe alike."), - FRONT_PIC(ZacianCrownedSword, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZacianCrownedSword, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZacianCrownedSword, 64, 56), + .backPic = gMonBackPic_ZacianCrownedSword, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZacianCrownedSword), - ICON(ZacianCrownedSword, 2), + .palette = gMonPalette_ZacianCrownedSword, + .shinyPalette = gMonShinyPalette_ZacianCrownedSword, + .iconSprite = gMonIcon_ZacianCrownedSword, + .iconPalIndex = 2, + FOOTPRINT(Zacian) + .isLegendary = TRUE, + .levelUpLearnset = sZacianLevelUpLearnset, + .teachableLearnset = sZacianTeachableLearnset, + .formSpeciesIdTable = sZacianFormSpeciesIdTable, + .formChangeTable = sZacianFormChangeTable, }, #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA -#define ZAMAZENTA_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .isLegendary = TRUE, \ - .speciesName = _("Zamazenta"), \ - .natDexNum = NATIONAL_DEX_ZAMAZENTA, \ - .categoryName = _("Warrior"), \ - .height = 29, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zamazenta, \ - LEARNSETS(Zamazenta), \ - .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, \ - .formChangeTable = sZamazentaFormChangeTable - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = { - ZAMAZENTA_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = 115, .baseSpeed = 138, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 10, .expYield = 335, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Zamazenta"), .cryId = CRY_ZAMAZENTA_HERO_OF_MANY_BATTLES, + .natDexNum = NATIONAL_DEX_ZAMAZENTA, + .categoryName = _("Warrior"), + .height = 29, .weight = 2100, .description = COMPOUND_STRING( "In times past, it worked together with a\n" "king of the people to save the Galar\n" "region. It absorbs metal that it then\n" "uses in battle."), - FRONT_PIC(ZamazentaHeroOfManyBattles, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZamazentaHeroOfManyBattles, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZamazentaHeroOfManyBattles, 64, 56), + .backPic = gMonBackPic_ZamazentaHeroOfManyBattles, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZamazentaHeroOfManyBattles), - ICON(ZamazentaHeroOfManyBattles, 2), + .palette = gMonPalette_ZamazentaHeroOfManyBattles, + .shinyPalette = gMonShinyPalette_ZamazentaHeroOfManyBattles, + .iconSprite = gMonIcon_ZamazentaHeroOfManyBattles, + .iconPalIndex = 2, + FOOTPRINT(Zamazenta) + .isLegendary = TRUE, + .levelUpLearnset = sZamazentaLevelUpLearnset, + .teachableLearnset = sZamazentaTeachableLearnset, + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, + .formChangeTable = sZamazentaFormChangeTable, }, [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { - ZAMAZENTA_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, .baseSpeed = 128, .baseSpAttack = 80, .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, - .types = { TYPE_FIGHTING, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 10, .expYield = 360, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Zamazenta"), .cryId = CRY_ZAMAZENTA_CROWNED_SHIELD, + .natDexNum = NATIONAL_DEX_ZAMAZENTA, + .categoryName = _("Warrior"), + .height = 29, .weight = 7850, .description = COMPOUND_STRING( "Its ability to deflect any attack\n" "led to it being known as the Fighting\n" "Master's Shield. It was feared and\n" "respected by all."), - FRONT_PIC(ZamazentaCrownedShield, 56, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZamazentaCrownedShield, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZamazentaCrownedShield, 64, 64), + .backPic = gMonBackPic_ZamazentaCrownedShield, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZamazentaCrownedShield), - ICON(ZamazentaCrownedShield, 2), + .palette = gMonPalette_ZamazentaCrownedShield, + .shinyPalette = gMonShinyPalette_ZamazentaCrownedShield, + .iconSprite = gMonIcon_ZamazentaCrownedShield, + .iconPalIndex = 2, + FOOTPRINT(Zamazenta) + .isLegendary = TRUE, + .levelUpLearnset = sZamazentaLevelUpLearnset, + .teachableLearnset = sZamazentaTeachableLearnset, + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, + .formChangeTable = sZamazentaFormChangeTable, }, #endif //P_FAMILY_ZAMAZENTA #if P_FAMILY_ETERNATUS -#define ETERNATUS_MISC_INFO \ - .types = { TYPE_POISON, TYPE_DRAGON }, \ - .catchRate = 255, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .isLegendary = TRUE, \ - .speciesName = _("Eternatus"), \ - .natDexNum = NATIONAL_DEX_ETERNATUS, \ - .categoryName = _("Gigantic"), \ - .footprint = gMonFootprint_Eternatus, \ - LEARNSETS(Eternatus), \ - .formSpeciesIdTable = sEternatusFormSpeciesIdTable - [SPECIES_ETERNATUS] = { - ETERNATUS_MISC_INFO, .baseHP = 140, .baseAttack = 85, .baseDefense = 95, .baseSpeed = 130, .baseSpAttack = 145, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), + .catchRate = 255, .expYield = 345, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Eternatus"), .cryId = CRY_ETERNATUS, + .natDexNum = NATIONAL_DEX_ETERNATUS, + .categoryName = _("Gigantic"), .height = 200, .weight = 9500, - .pokemonScale = 230, - .pokemonOffset = 0, - .trainerScale = 4852, - .trainerOffset = 20, .description = COMPOUND_STRING( "The core on its chest absorbs energy\n" "emanating from the lands of the Galar\n" "region. This energy is what allows\n" "Eternatus to stay active."), - FRONT_PIC(Eternatus, 64, 64), + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .frontPic = gMonFrontPic_Eternatus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Eternatus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(Eternatus, 64, 64), + .backPic = gMonBackPic_Eternatus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Eternatus), - ICON(Eternatus, 0), + .palette = gMonPalette_Eternatus, + .shinyPalette = gMonShinyPalette_Eternatus, + .iconSprite = gMonIcon_Eternatus, + .iconPalIndex = 0, + FOOTPRINT(Eternatus) + .isLegendary = TRUE, + .levelUpLearnset = sEternatusLevelUpLearnset, + .teachableLearnset = sEternatusTeachableLearnset, + .formSpeciesIdTable = sEternatusFormSpeciesIdTable, }, [SPECIES_ETERNATUS_ETERNAMAX] = { - ETERNATUS_MISC_INFO, .baseHP = 255, .baseAttack = 115, .baseDefense = 250, .baseSpeed = 130, .baseSpAttack = 125, .baseSpDefense = 250, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), + .catchRate = 255, .expYield = 563, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Eternatus"), .cryId = CRY_ETERNATUS_ETERNAMAX, + .natDexNum = NATIONAL_DEX_ETERNATUS, + .categoryName = _("Gigantic"), .height = 1000, .weight = 0, - .pokemonScale = 230, - .pokemonOffset = 0, - .trainerScale = 4852, - .trainerOffset = 20, .description = COMPOUND_STRING( "As a result of Rose's meddling,\n" "Eternatus absorbed all the energy in\n" "the Galar region. It's now in a state\n" "of power overload."), - FRONT_PIC(EternatusEternamax, 64, 64), + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .frontPic = gMonFrontPic_EternatusEternamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Eternatus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 13, - BACK_PIC(EternatusEternamax, 64, 56), + .backPic = gMonBackPic_EternatusEternamax, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EternatusEternamax), - ICON(EternatusEternamax, 0), + .palette = gMonPalette_EternatusEternamax, + .shinyPalette = gMonShinyPalette_EternatusEternamax, + .iconSprite = gMonIcon_EternatusEternamax, + .iconPalIndex = 0, + FOOTPRINT(Eternatus) + .isLegendary = TRUE, + .levelUpLearnset = sEternatusLevelUpLearnset, + .teachableLearnset = sEternatusTeachableLearnset, + .formSpeciesIdTable = sEternatusFormSpeciesIdTable, }, #endif //P_FAMILY_ETERNATUS @@ -4660,7 +5904,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 72, .baseSpAttack = 53, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 3, .expYield = 77, .evYield_Attack = 1, @@ -4668,10 +5912,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Kubfu"), .cryId = CRY_KUBFU, .natDexNum = NATIONAL_DEX_KUBFU, @@ -4686,238 +5929,361 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kubfu, 40, 48), + .frontPic = gMonFrontPic_Kubfu, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Kubfu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kubfu, 56, 48), + .backPic = gMonBackPic_Kubfu, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kubfu), - ICON(Kubfu, 1), - .footprint = gMonFootprint_Kubfu, - LEARNSETS(Kubfu), + .palette = gMonPalette_Kubfu, + .shinyPalette = gMonShinyPalette_Kubfu, + .iconSprite = gMonIcon_Kubfu, + .iconPalIndex = 1, + FOOTPRINT(Kubfu) + .isLegendary = TRUE, + .levelUpLearnset = sKubfuLevelUpLearnset, + .teachableLearnset = sKubfuTeachableLearnset, .evolutions = EVOLUTION({EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, {EVO_ITEM, ITEM_SCROLL_OF_DARKNESS, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, {EVO_WATER_SCROLL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}, {EVO_ITEM, ITEM_SCROLL_OF_WATERS, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}), }, -#define URSHIFU_MISC_INFO(style) \ - .baseHP = 100, \ - .baseAttack = 130, \ - .baseDefense = 100, \ - .baseSpeed = 97, \ - .baseSpAttack = 63, \ - .baseSpDefense = 60, \ - .catchRate = 3, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 120, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Urshifu"), \ - .natDexNum = NATIONAL_DEX_URSHIFU, \ - .categoryName = _("Wushu"), \ - .footprint = gMonFootprint_Urshifu, \ - .formSpeciesIdTable = sUrshifuFormSpeciesIdTable - -#define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_DARK }, \ - .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, \ - LEARNSETS(UrshifuSingleStrikeStyle), \ - URSHIFU_MISC_INFO(SingleStrike) - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 19, .weight = 1050, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "This form of Urshifu is a strong believer\n" "in the one-hit KO. Its strategy is to leap\n" "in close to foes and land a devastating\n" "blow with a hardened fist."), - FRONT_PIC(UrshifuSingleStrikeStyle, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuSingleStrikeStyle, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuSingleStrikeStyle, 64, 56), + .backPic = gMonBackPic_UrshifuSingleStrikeStyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuSingleStrikeStyle), - ICON(Urshifu, 2), + .palette = gMonPalette_UrshifuSingleStrikeStyle, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyle, + .iconSprite = gMonIcon_Urshifu, + .iconPalIndex = 2, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuSingleStrikeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 290, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "People call it the embodiment of\n" "rage. It's said that this Pokémon's\n" "terrifying expression and shout will\n" "rid the world of malevolence."), - FRONT_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), - .frontPicYOffset = 0, - .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), - .backPicYOffset = 4, - //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuSingleStrikeStyleGigantamax), - ICON(UrshifuSingleStrikeStyleGigantamax, 0), - .isGigantamax = TRUE, - }, -#endif //P_GIGANTAMAX_FORMS - -#define URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_WATER }, \ - .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, \ - LEARNSETS(UrshifuRapidStrikeStyle), \ - URSHIFU_MISC_INFO(RapidStrike) - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - .height = 19, - .weight = 1050, .pokemonScale = 256, .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuSingleStrikeStyleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_UrshifuSingleStrikeStyleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_UrshifuSingleStrikeStyleGigantamax, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyleGigantamax, + .iconSprite = gMonIcon_UrshifuSingleStrikeStyleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .isGigantamax = TRUE, + .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, + }, +#endif //P_GIGANTAMAX_FORMS + + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = + { + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), + .height = 19, + .weight = 1050, .description = COMPOUND_STRING( "This form of Urshifu is a strong\n" "believer in defeating foes by raining\n" "many blows down on them. Its\n" "strikes are nonstop, flowing like a river."), - FRONT_PIC(UrshifuRapidStrikeStyle, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuRapidStrikeStyle, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuRapidStrikeStyle, 64, 56), + .backPic = gMonBackPic_UrshifuRapidStrikeStyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuRapidStrikeStyle), - ICON(Urshifu, 2), + .palette = gMonPalette_UrshifuRapidStrikeStyle, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyle, + .iconSprite = gMonIcon_Urshifu, + .iconPalIndex = 2, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuRapidStrikeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 260, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "As it waits for the right moment to\n" "unleash its Gigantamax power, this\n" "Pokémon maintains a perfect one-\n" "legged stance. It won't even twitch."), - FRONT_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuRapidStrikeStyleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_UrshifuRapidStrikeStyleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .backPic = gMonBackPic_UrshifuRapidStrikeStyleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuRapidStrikeStyleGigantamax), - ICON(UrshifuRapidStrikeStyleGigantamax, 0), + .palette = gMonPalette_UrshifuRapidStrikeStyleGigantamax, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyleGigantamax, + .iconSprite = gMonIcon_UrshifuRapidStrikeStyleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, .isGigantamax = TRUE, + .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU #if P_FAMILY_ZARUDE -#define ZARUDE_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 120, \ - .baseDefense = 105, \ - .baseSpeed = 105, \ - .baseSpAttack = 70, \ - .baseSpDefense = 95, \ - .types = { TYPE_DARK, TYPE_GRASS }, \ - .catchRate = 3, \ - .expYield = 300, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isMythical = TRUE, \ - .speciesName = _("Zarude"), \ - .cryId = CRY_ZARUDE, \ - .natDexNum = NATIONAL_DEX_ZARUDE, \ - .categoryName = _("Rogue Monkey"), \ - .height = 18, \ - .weight = 700, \ - .pokemonScale = 267, \ - .pokemonOffset = 2, \ - .trainerScale = 286, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Zarude, \ - LEARNSETS(Zarude), \ - .formSpeciesIdTable = sZarudeFormSpeciesIdTable - [SPECIES_ZARUDE] = { - ZARUDE_MISC_INFO, + .baseHP = 105, + .baseAttack = 120, + .baseDefense = 105, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), + .catchRate = 3, + .expYield = 300, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Zarude"), + .cryId = CRY_ZARUDE, + .natDexNum = NATIONAL_DEX_ZARUDE, + .categoryName = _("Rogue Monkey"), + .height = 18, + .weight = 700, .description = COMPOUND_STRING( "Within dense forests, this Pokémon lives\n" "in a pack with others of its kind. It's\n" "incredibly aggressive, and the other\n" "Pokémon of the forest fear it."), - FRONT_PIC(Zarude, 64, 64), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Zarude, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zarude, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Zarude, 64, 56), + .backPic = gMonBackPic_Zarude, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Zarude), - ICON(Zarude, 1), + .palette = gMonPalette_Zarude, + .shinyPalette = gMonShinyPalette_Zarude, + .iconSprite = gMonIcon_Zarude, + .iconPalIndex = 1, + FOOTPRINT(Zarude) + .isMythical = TRUE, + .levelUpLearnset = sZarudeLevelUpLearnset, + .teachableLearnset = sZarudeTeachableLearnset, + .formSpeciesIdTable = sZarudeFormSpeciesIdTable, }, [SPECIES_ZARUDE_DADA] = { - ZARUDE_MISC_INFO, + .baseHP = 105, + .baseAttack = 120, + .baseDefense = 105, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), + .catchRate = 3, + .expYield = 300, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Zarude"), + .cryId = CRY_ZARUDE, + .natDexNum = NATIONAL_DEX_ZARUDE, + .categoryName = _("Rogue Monkey"), + .height = 18, + .weight = 700, .description = COMPOUND_STRING( "This Zarude's special strength\n" "stems from its love and care for an\n" "orphaned human child that the Pokémon\n" "has raised."), - FRONT_PIC(ZarudeDada, 64, 64), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_ZarudeDada, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zarude, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZarudeDada, 64, 56), + .backPic = gMonBackPic_ZarudeDada, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZarudeDada), - ICON(ZarudeDada, 1), + .palette = gMonPalette_ZarudeDada, + .shinyPalette = gMonShinyPalette_ZarudeDada, + .iconSprite = gMonIcon_ZarudeDada, + .iconPalIndex = 1, + FOOTPRINT(Zarude) + .isMythical = TRUE, + .levelUpLearnset = sZarudeLevelUpLearnset, + .teachableLearnset = sZarudeTeachableLearnset, + .formSpeciesIdTable = sZarudeFormSpeciesIdTable, }, #endif //P_FAMILY_ZARUDE @@ -4930,7 +6296,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 200, .baseSpAttack = 100, .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, .expYield = 290, .evYield_Speed = 3, @@ -4938,8 +6304,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Regieleki"), .cryId = CRY_REGIELEKI, @@ -4956,19 +6322,24 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Regieleki, 64, 56), + .frontPic = gMonFrontPic_Regieleki, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Regieleki, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Regieleki, 64, 48), + .backPic = gMonBackPic_Regieleki, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Regieleki), - ICON(Regieleki, 0), - .footprint = gMonFootprint_Regieleki, - LEARNSETS(Regieleki), + .palette = gMonPalette_Regieleki, + .shinyPalette = gMonShinyPalette_Regieleki, + .iconSprite = gMonIcon_Regieleki, + .iconPalIndex = 0, + FOOTPRINT(Regieleki) .isLegendary = TRUE, + .levelUpLearnset = sRegielekiLevelUpLearnset, + .teachableLearnset = sRegielekiTeachableLearnset, }, #endif //P_FAMILY_REGIELEKI @@ -4981,7 +6352,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 3, .expYield = 290, .evYield_HP = 3, @@ -4989,10 +6360,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isLegendary = TRUE, .speciesName = _("Regidrago"), .cryId = CRY_REGIDRAGO, .natDexNum = NATIONAL_DEX_REGIDRAGO, @@ -5008,18 +6378,24 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Regidrago, 64, 64), + .frontPic = gMonFrontPic_Regidrago, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Regidrago, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Regidrago, 64, 56), + .backPic = gMonBackPic_Regidrago, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Regidrago), - ICON(Regidrago, 0), - .footprint = gMonFootprint_Regidrago, - LEARNSETS(Regidrago), + .palette = gMonPalette_Regidrago, + .shinyPalette = gMonShinyPalette_Regidrago, + .iconSprite = gMonIcon_Regidrago, + .iconPalIndex = 0, + FOOTPRINT(Regidrago) + .isLegendary = TRUE, + .levelUpLearnset = sRegidragoLevelUpLearnset, + .teachableLearnset = sRegidragoTeachableLearnset, }, #endif //P_FAMILY_REGIDRAGO @@ -5032,7 +6408,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 65, .baseSpDefense = 110, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 3, .expYield = 290, .evYield_Attack = 3, @@ -5040,10 +6416,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Glastrier"), .cryId = CRY_GLASTRIER, .natDexNum = NATIONAL_DEX_GLASTRIER, @@ -5058,17 +6433,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Glastrier, 64, 64), + .frontPic = gMonFrontPic_Glastrier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Glastrier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Glastrier, 56, 64), + .backPic = gMonBackPic_Glastrier, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glastrier), - ICON(Glastrier, 0), - .footprint = gMonFootprint_Glastrier, - LEARNSETS(Glastrier), + .palette = gMonPalette_Glastrier, + .shinyPalette = gMonShinyPalette_Glastrier, + .iconSprite = gMonIcon_Glastrier, + .iconPalIndex = 0, + FOOTPRINT(Glastrier) + .isLegendary = TRUE, + .levelUpLearnset = sGlastrierLevelUpLearnset, + .teachableLearnset = sGlastrierTeachableLearnset, }, #endif //P_FAMILY_GLASTRIER @@ -5081,7 +6462,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 130, .baseSpAttack = 145, .baseSpDefense = 80, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 3, .expYield = 290, .evYield_SpAttack = 3, @@ -5089,10 +6470,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Spectrier"), .cryId = CRY_SPECTRIER, .natDexNum = NATIONAL_DEX_SPECTRIER, @@ -5108,38 +6488,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Spectrier, 64, 64), + .frontPic = gMonFrontPic_Spectrier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Spectrier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Spectrier, 56, 56), + .backPic = gMonBackPic_Spectrier, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Spectrier), - ICON(Spectrier, 0), - .footprint = gMonFootprint_Spectrier, - LEARNSETS(Spectrier), + .palette = gMonPalette_Spectrier, + .shinyPalette = gMonShinyPalette_Spectrier, + .iconSprite = gMonIcon_Spectrier, + .iconPalIndex = 0, + FOOTPRINT(Spectrier) + .isLegendary = TRUE, + .levelUpLearnset = sSpectrierLevelUpLearnset, + .teachableLearnset = sSpectrierTeachableLearnset, }, #endif //P_FAMILY_SPECTRIER -#define CALYREX_MISC_INFO \ - .speciesName = _("Calyrex"), \ - .natDexNum = NATIONAL_DEX_CALYREX, \ - .footprint = gMonFootprint_Calyrex, \ - .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, \ - .isLegendary = TRUE - #if P_FAMILY_CALYREX [SPECIES_CALYREX] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 80, .baseDefense = 80, .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GRASS), .catchRate = 3, .expYield = 250, .evYield_HP = 3, @@ -5147,10 +6525,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_UNNERVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNNERVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("King"), .height = 11, .weight = 77, @@ -5163,29 +6543,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Calyrex, 48, 64), + .frontPic = gMonFrontPic_Calyrex, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Calyrex, 56, 48), + .backPic = gMonBackPic_Calyrex, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Calyrex), - ICON(Calyrex, 0), - LEARNSETS(Calyrex), + .palette = gMonPalette_Calyrex, + .shinyPalette = gMonShinyPalette_Calyrex, + .iconSprite = gMonIcon_Calyrex, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, + .levelUpLearnset = sCalyrexLevelUpLearnset, + .teachableLearnset = sCalyrexTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_CALYREX_ICE_RIDER] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 165, .baseDefense = 150, .baseSpeed = 50, .baseSpAttack = 85, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_ICE }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_ICE), .catchRate = 3, .expYield = 340, .evYield_Attack = 3, @@ -5193,10 +6580,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX_ICE_RIDER, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, .weight = 8091, @@ -5209,29 +6598,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CalyrexIceRider, 64, 64), + .frontPic = gMonFrontPic_CalyrexIceRider, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CalyrexIceRider, 64, 64), + .backPic = gMonBackPic_CalyrexIceRider, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CalyrexIceRider), - ICON(CalyrexIceRider, 0), - LEARNSETS(CalyrexIceRider), + .palette = gMonPalette_CalyrexIceRider, + .shinyPalette = gMonShinyPalette_CalyrexIceRider, + .iconSprite = gMonIcon_CalyrexIceRider, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sCalyrexIceRiderLevelUpLearnset, + .teachableLearnset = sCalyrexIceRiderTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, [SPECIES_CALYREX_SHADOW_RIDER] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 85, .baseDefense = 80, .baseSpeed = 150, .baseSpAttack = 165, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 3, .expYield = 340, .evYield_SpAttack = 3, @@ -5239,10 +6635,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX_SHADOW_RIDER, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, .weight = 536, @@ -5255,101 +6653,137 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CalyrexShadowRider, 64, 64), + .frontPic = gMonFrontPic_CalyrexShadowRider, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CalyrexShadowRider, 64, 56), + .backPic = gMonBackPic_CalyrexShadowRider, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CalyrexShadowRider), - ICON(CalyrexShadowRider, 0), - LEARNSETS(CalyrexShadowRider), + .palette = gMonPalette_CalyrexShadowRider, + .shinyPalette = gMonShinyPalette_CalyrexShadowRider, + .iconSprite = gMonIcon_CalyrexShadowRider, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset, + .teachableLearnset = sCalyrexShadowRiderTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, #endif //P_FUSION_FORMS #endif //P_FAMILY_CALYREX #if P_FAMILY_ENAMORUS -#define ENAMORUS_MISC_INFO \ - .types = { TYPE_FAIRY, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 116, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .isLegendary = TRUE, \ - .speciesName = _("Enamorus"), \ - .natDexNum = NATIONAL_DEX_ENAMORUS, \ - .categoryName = _("Love-Hate"), \ - .height = 16, \ - .weight = 480, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - LEARNSETS(Enamorus), \ - .formSpeciesIdTable = sEnamorusFormSpeciesIdTable - [SPECIES_ENAMORUS_INCARNATE] = { - ENAMORUS_MISC_INFO, .baseHP = 74, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 106, .baseSpAttack = 135, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FLYING), + .catchRate = 3, + .expYield = 116, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Enamorus"), .cryId = CRY_ENAMORUS_INCARNATE, + .natDexNum = NATIONAL_DEX_ENAMORUS, + .categoryName = _("Love-Hate"), + .height = 16, + .weight = 480, .description = COMPOUND_STRING( "Its arrival brings an end to the winter.\n" "According to legend, this Pokémon's love\n" "gives rise to the budding of fresh life\n" "across the land."), - FRONT_PIC(EnamorusIncarnate, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_EnamorusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_EnamorusIncarnate, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(EnamorusIncarnate, 64, 64), + .backPic = gMonBackPic_EnamorusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EnamorusIncarnate), - ICON(EnamorusIncarnate, 1), - //.footprint = gMonFootprint_EnamorusIncarnate, + .palette = gMonPalette_EnamorusIncarnate, + .shinyPalette = gMonShinyPalette_EnamorusIncarnate, + .iconSprite = gMonIcon_EnamorusIncarnate, + .iconPalIndex = 1, + //FOOTPRINT(EnamorusIncarnate) + .isLegendary = TRUE, + .levelUpLearnset = sEnamorusLevelUpLearnset, + .teachableLearnset = sEnamorusTeachableLearnset, + .formSpeciesIdTable = sEnamorusFormSpeciesIdTable, }, [SPECIES_ENAMORUS_THERIAN] = { - ENAMORUS_MISC_INFO, .baseHP = 74, .baseAttack = 115, .baseDefense = 110, .baseSpeed = 46, .baseSpAttack = 135, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FLYING), + .catchRate = 3, + .expYield = 116, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Enamorus"), .cryId = CRY_ENAMORUS_THERIAN, + .natDexNum = NATIONAL_DEX_ENAMORUS, + .categoryName = _("Love-Hate"), + .height = 16, + .weight = 480, .description = COMPOUND_STRING( "From the clouds, it descends upon\n" "those who treat any form of life\n" "with disrespect and metes out\n" "wrathful, ruthless punishment."), - FRONT_PIC(EnamorusTherian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_EnamorusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_EnamorusTherian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EnamorusTherian, 64, 64), + .backPic = gMonBackPic_EnamorusTherian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EnamorusTherian), - ICON(EnamorusTherian, 1), - //.footprint = gMonFootprint_Enamorus, + .palette = gMonPalette_EnamorusTherian, + .shinyPalette = gMonShinyPalette_EnamorusTherian, + .iconSprite = gMonIcon_EnamorusTherian, + .iconPalIndex = 1, + //FOOTPRINT(Enamorus) + .isLegendary = TRUE, + .levelUpLearnset = sEnamorusLevelUpLearnset, + .teachableLearnset = sEnamorusTeachableLearnset, + .formSpeciesIdTable = sEnamorusFormSpeciesIdTable, }, #endif //P_FAMILY_ENAMORUS diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9_families.h similarity index 58% rename from src/data/pokemon/species_info/gen_9.h rename to src/data/pokemon/species_info/gen_9_families.h index 7a45fc66e..d858ec352 100644 --- a/src/data/pokemon/species_info/gen_9.h +++ b/src/data/pokemon/species_info/gen_9_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Sprigatito"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sprigatito, 64, 64), + .frontPic = gMonFrontPic_Sprigatito, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sprigatito, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sprigatito, 64, 64), + .backPic = gMonBackPic_Sprigatito, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sprigatito), - ICON(Sprigatito, 4), - //.footprint = gMonFootprint_Sprigatito, - LEARNSETS(Sprigatito), + .palette = gMonPalette_Sprigatito, + .shinyPalette = gMonShinyPalette_Sprigatito, + .iconSprite = gMonIcon_Sprigatito, + .iconPalIndex = 1, + //FOOTPRINT(Sprigatito) + .levelUpLearnset = sSprigatitoLevelUpLearnset, + .teachableLearnset = sSprigatitoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FLORAGATO}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 83, .baseSpAttack = 60, .baseSpDefense = 63, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 144, .evYield_Speed = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Floragato"), @@ -86,17 +91,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Floragato, 64, 64), + .frontPic = gMonFrontPic_Floragato, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Floragato, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Floragato, 64, 64), + .backPic = gMonBackPic_Floragato, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Floragato), - ICON(Floragato, 1), - //.footprint = gMonFootprint_Floragato, - LEARNSETS(Floragato), + .palette = gMonPalette_Floragato, + .shinyPalette = gMonShinyPalette_Floragato, + .iconSprite = gMonIcon_Floragato, + .iconPalIndex = 1, + //FOOTPRINT(Floragato) + .levelUpLearnset = sFloragatoLevelUpLearnset, + .teachableLearnset = sFloragatoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_MEOWSCARADA}), }, @@ -108,7 +118,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 123, .baseSpAttack = 81, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 45, .expYield = 265, .evYield_Speed = 3, @@ -116,7 +126,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Meowscarad"), @@ -134,17 +144,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meowscarada, 64, 64), + .frontPic = gMonFrontPic_Meowscarada, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Meowscarada, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Meowscarada, 64, 64), + .backPic = gMonBackPic_Meowscarada, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Meowscarada), - ICON(Meowscarada, 1), - //.footprint = gMonFootprint_Meowscarada, - LEARNSETS(Meowscarada), + .palette = gMonPalette_Meowscarada, + .shinyPalette = gMonShinyPalette_Meowscarada, + .iconSprite = gMonIcon_Meowscarada, + .iconPalIndex = 1, + //FOOTPRINT(Meowscarada) + .levelUpLearnset = sMeowscaradaLevelUpLearnset, + .teachableLearnset = sMeowscaradaTeachableLearnset, }, #endif //P_FAMILY_SPRIGATITO @@ -157,7 +172,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 36, .baseSpAttack = 63, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_HP = 1, @@ -165,7 +180,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fuecoco"), @@ -183,17 +198,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fuecoco, 64, 64), + .frontPic = gMonFrontPic_Fuecoco, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Fuecoco, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fuecoco, 64, 64), + .backPic = gMonBackPic_Fuecoco, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fuecoco), - ICON(Fuecoco, 0), - //.footprint = gMonFootprint_Fuecoco, - LEARNSETS(Fuecoco), + .palette = gMonPalette_Fuecoco, + .shinyPalette = gMonShinyPalette_Fuecoco, + .iconSprite = gMonIcon_Fuecoco, + .iconPalIndex = 2, + //FOOTPRINT(Fuecoco) + .levelUpLearnset = sFuecocoLevelUpLearnset, + .teachableLearnset = sFuecocoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CROCALOR}), }, @@ -205,7 +225,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 49, .baseSpAttack = 90, .baseSpDefense = 58, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 144, .evYield_SpAttack = 2, @@ -213,7 +233,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crocalor"), @@ -231,17 +251,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crocalor, 64, 64), + .frontPic = gMonFrontPic_Crocalor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Crocalor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Crocalor, 64, 64), + .backPic = gMonBackPic_Crocalor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crocalor), - ICON(Crocalor, 0), - //.footprint = gMonFootprint_Crocalor, - LEARNSETS(Crocalor), + .palette = gMonPalette_Crocalor, + .shinyPalette = gMonShinyPalette_Crocalor, + .iconSprite = gMonIcon_Crocalor, + .iconPalIndex = 0, + //FOOTPRINT(Crocalor) + .levelUpLearnset = sCrocalorLevelUpLearnset, + .teachableLearnset = sCrocalorTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SKELEDIRGE}), }, @@ -253,7 +278,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 66, .baseSpAttack = 110, .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 45, .expYield = 265, .evYield_SpAttack = 3, @@ -261,7 +286,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Skeledirge"), @@ -279,17 +304,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skeledirge, 64, 64), - .frontPicYOffset = 7, + .frontPic = gMonFrontPic_Skeledirge, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_Skeledirge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skeledirge, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_Skeledirge, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Skeledirge), - ICON(Skeledirge, 0), - //.footprint = gMonFootprint_Skeledirge, - LEARNSETS(Skeledirge), + .palette = gMonPalette_Skeledirge, + .shinyPalette = gMonShinyPalette_Skeledirge, + .iconSprite = gMonIcon_Skeledirge, + .iconPalIndex = 0, + //FOOTPRINT(Skeledirge) + .levelUpLearnset = sSkeledirgeLevelUpLearnset, + .teachableLearnset = sSkeledirgeTeachableLearnset, }, #endif //P_FAMILY_FUECOCO @@ -302,7 +332,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_Attack = 1, @@ -310,7 +340,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Quaxly"), @@ -328,17 +358,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaxly, 64, 64), + .frontPic = gMonFrontPic_Quaxly, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Quaxly, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaxly, 64, 64), + .backPic = gMonBackPic_Quaxly, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaxly), - ICON(Quaxly, 2), - //.footprint = gMonFootprint_Quaxly, - LEARNSETS(Quaxly), + .palette = gMonPalette_Quaxly, + .shinyPalette = gMonShinyPalette_Quaxly, + .iconSprite = gMonIcon_Quaxly, + .iconPalIndex = 0, + //FOOTPRINT(Quaxly) + .levelUpLearnset = sQuaxlyLevelUpLearnset, + .teachableLearnset = sQuaxlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUAXWELL}), }, @@ -350,7 +385,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -358,7 +393,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quaxwell"), @@ -376,17 +411,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaxwell, 64, 64), + .frontPic = gMonFrontPic_Quaxwell, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Quaxwell, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaxwell, 64, 64), + .backPic = gMonBackPic_Quaxwell, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaxwell), - ICON(Quaxwell, 0), - //.footprint = gMonFootprint_Quaxwell, - LEARNSETS(Quaxwell), + .palette = gMonPalette_Quaxwell, + .shinyPalette = gMonShinyPalette_Quaxwell, + .iconSprite = gMonIcon_Quaxwell, + .iconPalIndex = 0, + //FOOTPRINT(Quaxwell) + .levelUpLearnset = sQuaxwellLevelUpLearnset, + .teachableLearnset = sQuaxwellTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_QUAQUAVAL}), }, @@ -398,7 +438,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), .catchRate = 45, .expYield = 265, .evYield_Attack = 3, @@ -406,7 +446,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quaquaval"), @@ -424,17 +464,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaquaval, 64, 64), + .frontPic = gMonFrontPic_Quaquaval, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Quaquaval, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaquaval, 64, 64), + .backPic = gMonBackPic_Quaquaval, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaquaval), - ICON(Quaquaval, 0), - //.footprint = gMonFootprint_Quaquaval, - LEARNSETS(Quaquaval), + .palette = gMonPalette_Quaquaval, + .shinyPalette = gMonShinyPalette_Quaquaval, + .iconSprite = gMonIcon_Quaquaval, + .iconPalIndex = 0, + //FOOTPRINT(Quaquaval) + .levelUpLearnset = sQuaquavalLevelUpLearnset, + .teachableLearnset = sQuaquavalTeachableLearnset, }, #endif //P_FAMILY_QUAXLY @@ -447,7 +492,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_HP = 1, @@ -455,7 +500,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lechonk"), @@ -473,100 +518,129 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lechonk, 64, 64), + .frontPic = gMonFrontPic_Lechonk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Lechonk, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lechonk, 64, 64), + .backPic = gMonBackPic_Lechonk, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lechonk), - ICON(Lechonk, 1), - //.footprint = gMonFootprint_Lechonk, - LEARNSETS(Lechonk), + .palette = gMonPalette_Lechonk, + .shinyPalette = gMonShinyPalette_Lechonk, + .iconSprite = gMonIcon_Lechonk, + .iconPalIndex = 1, + //FOOTPRINT(Lechonk) + .levelUpLearnset = sLechonkLevelUpLearnset, + .teachableLearnset = sLechonkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_MALE, 18, SPECIES_OINKOLOGNE_MALE}, {EVO_LEVEL_FEMALE, 18, SPECIES_OINKOLOGNE_FEMALE}), }, -#define OINKOLOGNE_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 100, \ - .expYield = 171, \ - .evYield_HP = 2, \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Oinkologne"), \ - .natDexNum = NATIONAL_DEX_OINKOLOGNE, \ - .categoryName = _("Hog"), \ - .height = 10, \ - .weight = 1200, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .teachableLearnset = sOinkologneTeachableLearnset, \ - .formSpeciesIdTable = sOinkologneFormSpeciesIdTable - [SPECIES_OINKOLOGNE_MALE] = { - OINKOLOGNE_MISC_INFO, .baseHP = 110, .baseAttack = 100, .baseDefense = 75, .baseSpeed = 65, .baseSpAttack = 59, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 100, + .expYield = 171, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(0), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LINGERING_AROMA, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Oinkologne"), .cryId = CRY_OINKOLOGNE_MALE, + .natDexNum = NATIONAL_DEX_OINKOLOGNE, + .categoryName = _("Hog"), + .height = 10, + .weight = 1200, .description = COMPOUND_STRING( "Oinkologne is proud of its fine,\n" "glossy skin. It emits a concentrated\n" "scent from the tip of its tail."), - FRONT_PIC(OinkologneMale, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OinkologneMale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OinkologneMale, 64, 64), + .backPic = gMonBackPic_OinkologneMale, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OinkologneMale), - ICON(OinkologneMale, 1), - //.footprint = gMonFootprint_Oinkologne, + .palette = gMonPalette_OinkologneMale, + .shinyPalette = gMonShinyPalette_OinkologneMale, + .iconSprite = gMonIcon_OinkologneMale, + .iconPalIndex = 1, + //FOOTPRINT(Oinkologne) .levelUpLearnset = sOinkologneMaleLevelUpLearnset, + .teachableLearnset = sOinkologneTeachableLearnset, + .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, [SPECIES_OINKOLOGNE_FEMALE] = { - OINKOLOGNE_MISC_INFO, .baseHP = 115, .baseAttack = 90, .baseDefense = 70, .baseSpeed = 65, .baseSpAttack = 59, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 100, + .expYield = 171, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(100), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Oinkologne"), .cryId = CRY_OINKOLOGNE_FEMALE, + .natDexNum = NATIONAL_DEX_OINKOLOGNE, + .categoryName = _("Hog"), + .height = 10, + .weight = 1200, .description = COMPOUND_STRING( "This is a meticulous Pokémon that\n" "likes to keep things tidy. It\n" "shrouds itself in a floral aroma that\n" "soothes the Pokémon around it."), - FRONT_PIC(OinkologneFemale, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OinkologneFemale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OinkologneFemale, 64, 64), + .backPic = gMonBackPic_OinkologneFemale, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OinkologneFemale), - ICON(OinkologneFemale, 2), - //.footprint = gMonFootprint_Oinkologne, + .palette = gMonPalette_OinkologneFemale, + .shinyPalette = gMonShinyPalette_OinkologneFemale, + .iconSprite = gMonIcon_OinkologneFemale, + .iconPalIndex = 0, + //FOOTPRINT(Oinkologne) .levelUpLearnset = sOinkologneFemaleLevelUpLearnset, + .teachableLearnset = sOinkologneTeachableLearnset, + .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, #endif //P_FAMILY_LECHONK @@ -579,7 +653,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 20, .baseSpAttack = 29, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 42, .evYield_Defense = 1, @@ -587,7 +661,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tarountula"), @@ -605,17 +679,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tarountula, 64, 64), + .frontPic = gMonFrontPic_Tarountula, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Tarountula, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tarountula, 64, 64), + .backPic = gMonBackPic_Tarountula, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tarountula), - ICON(Tarountula, 1), - //.footprint = gMonFootprint_Tarountula, - LEARNSETS(Tarountula), + .palette = gMonPalette_Tarountula, + .shinyPalette = gMonShinyPalette_Tarountula, + .iconSprite = gMonIcon_Tarountula, + .iconPalIndex = 1, + //FOOTPRINT(Tarountula) + .levelUpLearnset = sTarountulaLevelUpLearnset, + .teachableLearnset = sTarountulaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_SPIDOPS}), }, @@ -627,7 +706,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 52, .baseSpDefense = 86, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, .expYield = 141, .evYield_Defense = 2, @@ -635,7 +714,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Spidops"), @@ -653,17 +732,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spidops, 64, 64), + .frontPic = gMonFrontPic_Spidops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Spidops, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Spidops, 64, 64), + .backPic = gMonBackPic_Spidops, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Spidops), - ICON(Spidops, 1), - //.footprint = gMonFootprint_Spidops, - LEARNSETS(Spidops), + .palette = gMonPalette_Spidops, + .shinyPalette = gMonShinyPalette_Spidops, + .iconSprite = gMonIcon_Spidops, + .iconPalIndex = 1, + //FOOTPRINT(Spidops) + .levelUpLearnset = sSpidopsLevelUpLearnset, + .teachableLearnset = sSpidopsTeachableLearnset, }, #endif //P_FAMILY_TAROUNTULA @@ -676,7 +760,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 21, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, .expYield = 42, .evYield_Attack = 1, @@ -684,7 +768,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = 20, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nymble"), @@ -702,17 +786,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nymble, 64, 64), + .frontPic = gMonFrontPic_Nymble, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nymble, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nymble, 64, 64), + .backPic = gMonBackPic_Nymble, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nymble), - ICON(Nymble, 0), - //.footprint = gMonFootprint_Nymble, - LEARNSETS(Nymble), + .palette = gMonPalette_Nymble, + .shinyPalette = gMonShinyPalette_Nymble, + .iconSprite = gMonIcon_Nymble, + .iconPalIndex = 0, + //FOOTPRINT(Nymble) + .levelUpLearnset = sNymbleLevelUpLearnset, + .teachableLearnset = sNymbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_LOKIX}), }, @@ -724,7 +813,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 92, .baseSpAttack = 52, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_DARK }, + .types = MON_TYPES(TYPE_BUG, TYPE_DARK), .catchRate = 30, .expYield = 158, .evYield_Attack = 2, @@ -732,7 +821,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = 0, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lokix"), @@ -750,17 +839,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lokix, 64, 64), + .frontPic = gMonFrontPic_Lokix, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Lokix, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lokix, 64, 64), + .backPic = gMonBackPic_Lokix, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lokix), - ICON(Lokix, 0), - //.footprint = gMonFootprint_Lokix, - LEARNSETS(Lokix), + .palette = gMonPalette_Lokix, + .shinyPalette = gMonShinyPalette_Lokix, + .iconSprite = gMonIcon_Lokix, + .iconPalIndex = 0, + //FOOTPRINT(Lokix) + .levelUpLearnset = sLokixLevelUpLearnset, + .teachableLearnset = sLokixTeachableLearnset, }, #endif //P_FAMILY_NYMBLE @@ -773,7 +867,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 25, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 48, .evYield_Speed = 1, @@ -781,7 +875,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmi"), @@ -799,17 +893,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmi, 64, 64), + .frontPic = gMonFrontPic_Pawmi, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pawmi, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmi, 64, 64), + .backPic = gMonBackPic_Pawmi, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmi), - ICON(Pawmi, 3), - //.footprint = gMonFootprint_Pawmi, - LEARNSETS(Pawmi), + .palette = gMonPalette_Pawmi, + .shinyPalette = gMonShinyPalette_Pawmi, + .iconSprite = gMonIcon_Pawmi, + .iconPalIndex = 0, + //FOOTPRINT(Pawmi) + .levelUpLearnset = sPawmiLevelUpLearnset, + .teachableLearnset = sPawmiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PAWMO}), }, @@ -821,7 +920,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIGHTING), .catchRate = 80, .expYield = 123, .evYield_Speed = 2, @@ -829,7 +928,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmo"), @@ -847,17 +946,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmo, 64, 64), + .frontPic = gMonFrontPic_Pawmo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Pawmo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmo, 64, 64), + .backPic = gMonBackPic_Pawmo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmo), - ICON(Pawmo, 3), - //.footprint = gMonFootprint_Pawmo, - LEARNSETS(Pawmo), + .palette = gMonPalette_Pawmo, + .shinyPalette = gMonShinyPalette_Pawmo, + .iconSprite = gMonIcon_Pawmo, + .iconPalIndex = 0, + //FOOTPRINT(Pawmo) + .levelUpLearnset = sPawmoLevelUpLearnset, + .teachableLearnset = sPawmoTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_PAWMOT}), }, @@ -869,7 +973,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 105, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIGHTING), .catchRate = 45, .expYield = 245, .evYield_Attack = 3, @@ -877,7 +981,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmot"), @@ -895,17 +999,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmot, 64, 64), + .frontPic = gMonFrontPic_Pawmot, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pawmot, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmot, 64, 64), + .backPic = gMonBackPic_Pawmot, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmot), - ICON(Pawmot, 3), - //.footprint = gMonFootprint_Pawmot, - LEARNSETS(Pawmot), + .palette = gMonPalette_Pawmot, + .shinyPalette = gMonShinyPalette_Pawmot, + .iconSprite = gMonIcon_Pawmot, + .iconPalIndex = 0, + //FOOTPRINT(Pawmot) + .levelUpLearnset = sPawmotLevelUpLearnset, + .teachableLearnset = sPawmotTeachableLearnset, }, #endif //P_FAMILY_PAWMI @@ -918,7 +1027,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 150, .expYield = 61, .evYield_Speed = 1, @@ -926,7 +1035,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tandemaus"), @@ -944,84 +1053,129 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tandemaus, 64, 64), + .frontPic = gMonFrontPic_Tandemaus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Tandemaus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tandemaus, 64, 64), + .backPic = gMonBackPic_Tandemaus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tandemaus), - ICON(Tandemaus, 0), - //.footprint = gMonFootprint_Tandemaus, - LEARNSETS(Tandemaus), + .palette = gMonPalette_Tandemaus, + .shinyPalette = gMonShinyPalette_Tandemaus, + .iconSprite = gMonIcon_Tandemaus, + .iconPalIndex = 1, + //FOOTPRINT(Tandemaus) + .levelUpLearnset = sTandemausLevelUpLearnset, + .teachableLearnset = sTandemausTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_FAMILY_OF_FOUR, 25, SPECIES_MAUSHOLD_FAMILY_OF_FOUR}, {EVO_LEVEL_FAMILY_OF_THREE, 25, SPECIES_MAUSHOLD_FAMILY_OF_THREE}), }, -#define MAUSHOLD_SPECIES_INFO \ - .baseHP = 74, \ - .baseAttack = 75, \ - .baseDefense = 70, \ - .baseSpeed = 111, \ - .baseSpAttack = 65, \ - .baseSpDefense = 75, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 75, \ - .expYield = 165, \ - .evYield_Speed = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Maushold"), \ - .natDexNum = NATIONAL_DEX_MAUSHOLD, \ - .categoryName = _("Family"), \ - .height = 3, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 15, \ - .frontAnimFrames = sAnims_Maushold, \ - .backPicYOffset = 15, \ - PALETTES(Maushold), \ - LEARNSETS(Maushold), \ - .formSpeciesIdTable = sMausholdFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Maushold, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = { - MAUSHOLD_SPECIES_INFO, + .baseHP = 74, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Maushold"), .cryId = CRY_MAUSHOLD_FAMILY_OF_THREE, + .natDexNum = NATIONAL_DEX_MAUSHOLD, + .categoryName = _("Family"), + .height = 3, .weight = 23, .description = COMPOUND_STRING( "The little one just appeared one\n" "day. They all live together like a\n" "family, but the relationship between\n" "the three is still unclear."), - FRONT_PIC(MausholdFamilyOfThree, 64, 64), - BACK_PIC(MausholdFamilyOfThree, 64, 64), - ICON(MausholdFamilyOfThree, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MausholdFamilyOfThree, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Maushold, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_MausholdFamilyOfThree, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 15, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Maushold, + .shinyPalette = gMonShinyPalette_Maushold, + .iconSprite = gMonIcon_MausholdFamilyOfThree, + .iconPalIndex = 1, + /*FOOTPRINT(Maushold)*/ + .levelUpLearnset = sMausholdLevelUpLearnset, + .teachableLearnset = sMausholdTeachableLearnset, + .formSpeciesIdTable = sMausholdFormSpeciesIdTable, }, [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = { - MAUSHOLD_SPECIES_INFO, + .baseHP = 74, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Maushold"), .cryId = CRY_MAUSHOLD_FAMILY_OF_FOUR, + .natDexNum = NATIONAL_DEX_MAUSHOLD, + .categoryName = _("Family"), + .height = 3, .weight = 28, .description = COMPOUND_STRING( "The larger pair protects the little\n" "ones during battles. When facing\n" "strong opponents, the whole group\n" "will join the fight."), - FRONT_PIC(MausholdFamilyOfFour, 64, 64), - BACK_PIC(MausholdFamilyOfFour, 64, 64), - ICON(MausholdFamilyOfFour, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MausholdFamilyOfFour, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Maushold, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_MausholdFamilyOfFour, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 15, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Maushold, + .shinyPalette = gMonShinyPalette_Maushold, + .iconSprite = gMonIcon_MausholdFamilyOfFour, + .iconPalIndex = 1, + /*FOOTPRINT(Maushold)*/ + .levelUpLearnset = sMausholdLevelUpLearnset, + .teachableLearnset = sMausholdTeachableLearnset, + .formSpeciesIdTable = sMausholdFormSpeciesIdTable, }, #endif //P_FAMILY_TANDEMAUS @@ -1034,7 +1188,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 190, .expYield = 62, .evYield_Speed = 1, @@ -1042,7 +1196,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Fidough"), @@ -1060,17 +1214,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fidough, 64, 64), + .frontPic = gMonFrontPic_Fidough, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Fidough, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fidough, 64, 64), + .backPic = gMonBackPic_Fidough, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fidough), - ICON(Fidough, 1), - //.footprint = gMonFootprint_Fidough, - LEARNSETS(Fidough), + .palette = gMonPalette_Fidough, + .shinyPalette = gMonShinyPalette_Fidough, + .iconSprite = gMonIcon_Fidough, + .iconPalIndex = 1, + //FOOTPRINT(Fidough) + .levelUpLearnset = sFidoughLevelUpLearnset, + .teachableLearnset = sFidoughTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DACHSBUN}), }, @@ -1082,7 +1241,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 95, .baseSpAttack = 50, .baseSpDefense = 80, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 90, .expYield = 167, .evYield_Speed = 2, @@ -1090,7 +1249,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_WELL_BAKED_BODY, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dachsbun"), @@ -1108,17 +1267,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dachsbun, 64, 64), + .frontPic = gMonFrontPic_Dachsbun, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Dachsbun, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dachsbun, 64, 64), + .backPic = gMonBackPic_Dachsbun, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dachsbun), - ICON(Dachsbun, 0), // TODO - //.footprint = gMonFootprint_Dachsbun, - LEARNSETS(Dachsbun), + .palette = gMonPalette_Dachsbun, + .shinyPalette = gMonShinyPalette_Dachsbun, + .iconSprite = gMonIcon_Dachsbun, + .iconPalIndex = 0, + //FOOTPRINT(Dachsbun) + .levelUpLearnset = sDachsbunLevelUpLearnset, + .teachableLearnset = sDachsbunTeachableLearnset, }, #endif //P_FAMILY_FIDOUGH @@ -1131,7 +1295,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 30, .baseSpAttack = 58, .baseSpDefense = 51, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 255, .expYield = 52, .evYield_SpAttack = 1, @@ -1139,7 +1303,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Smoliv"), @@ -1157,17 +1321,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smoliv, 64, 64), + .frontPic = gMonFrontPic_Smoliv, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Smoliv, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Smoliv, 64, 64), - .backPicYOffset = 16, + .backPic = gMonBackPic_Smoliv, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Smoliv), - ICON(Smoliv, 1), - //.footprint = gMonFootprint_Smoliv, - LEARNSETS(Smoliv), + .palette = gMonPalette_Smoliv, + .shinyPalette = gMonShinyPalette_Smoliv, + .iconSprite = gMonIcon_Smoliv, + .iconPalIndex = 1, + //FOOTPRINT(Smoliv) + .levelUpLearnset = sSmolivLevelUpLearnset, + .teachableLearnset = sSmolivTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DOLLIV}), }, @@ -1179,7 +1348,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 33, .baseSpAttack = 78, .baseSpDefense = 78, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 120, .expYield = 124, .evYield_SpAttack = 2, @@ -1187,7 +1356,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dolliv"), @@ -1205,17 +1374,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dolliv, 64, 64), + .frontPic = gMonFrontPic_Dolliv, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Dolliv, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dolliv, 64, 64), - .backPicYOffset = 2, + .backPic = gMonBackPic_Dolliv, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dolliv), - ICON(Dolliv, 1), - //.footprint = gMonFootprint_Dolliv, - LEARNSETS(Dolliv), + .palette = gMonPalette_Dolliv, + .shinyPalette = gMonShinyPalette_Dolliv, + .iconSprite = gMonIcon_Dolliv, + .iconPalIndex = 1, + //FOOTPRINT(Dolliv) + .levelUpLearnset = sDollivLevelUpLearnset, + .teachableLearnset = sDollivTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARBOLIVA}), }, @@ -1227,7 +1401,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 39, .baseSpAttack = 125, .baseSpDefense = 109, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 45, .expYield = 255, .evYield_SpAttack = 3, @@ -1235,7 +1409,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_SEED_SOWER, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Arboliva"), @@ -1253,112 +1427,236 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arboliva, 64, 64), + .frontPic = gMonFrontPic_Arboliva, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Arboliva, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arboliva, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_Arboliva, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arboliva), - ICON(Arboliva, 5), - //.footprint = gMonFootprint_Arboliva, - LEARNSETS(Arboliva), + .palette = gMonPalette_Arboliva, + .shinyPalette = gMonShinyPalette_Arboliva, + .iconSprite = gMonIcon_Arboliva, + .iconPalIndex = 1, + //FOOTPRINT(Arboliva) + .levelUpLearnset = sArbolivaLevelUpLearnset, + .teachableLearnset = sArbolivaTeachableLearnset, }, #endif //P_FAMILY_SMOLIV #if P_FAMILY_SQUAWKABILLY -#define SQUAWKABILLY_MISC_INFO \ - .baseHP = 82, \ - .baseAttack = 96, \ - .baseDefense = 51, \ - .baseSpeed = 92, \ - .baseSpAttack = 45, \ - .baseSpDefense = 51, \ - .types = { TYPE_NORMAL, TYPE_FLYING }, \ - .catchRate = 190, \ - .expYield = 146, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .speciesName = _("Sqawkabily"), \ - .cryId = CRY_SQUAWKABILLY, \ - .natDexNum = NATIONAL_DEX_SQUAWKABILLY, \ - .categoryName = _("Parrot"), \ - .height = 6, \ - .weight = 24, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Squawkabilly, 64, 64), \ - .frontPicYOffset = 4, \ - .frontAnimFrames = sAnims_Squawkabilly, \ - BACK_PIC(Squawkabilly, 64, 64), \ - .backPicYOffset = 4, \ - LEARNSETS(Squawkabilly), \ - .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Squawkabilly, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "Green-feathered flocks hold the\n" "most sway. When they're out\n" "searching for food in the mornings and\n" "evenings, it gets very noisy."), - PALETTES(SquawkabillyGreenPlumage), - ICON(SquawkabillyGreenPlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyGreenPlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyGreenPlumage, + .iconSprite = gMonIcon_SquawkabillyGreenPlumage, + .iconPalIndex = 1, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "The largest of their flocks can\n" "contain more than 50 individuals. They\n" "fly around towns and forests,\n" "searching for food and making a racket."), - PALETTES(SquawkabillyBluePlumage), - ICON(SquawkabillyBluePlumage, 2), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyBluePlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyBluePlumage, + .iconSprite = gMonIcon_SquawkabillyBluePlumage, + .iconPalIndex = 0, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "These Squawkabilly are hotheaded,\n" "and their fighting style is vicious.\n" "They'll leap within reach of their\n" "foes to engage in close combat."), - PALETTES(SquawkabillyYellowPlumage), - ICON(SquawkabillyYellowPlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyYellowPlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyYellowPlumage, + .iconSprite = gMonIcon_SquawkabillyYellowPlumage, + .iconPalIndex = 1, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "Though these Squawkabilly are the\n" "fewest in number, they have no\n" "trouble living in towns since they blend\n" "in with the white buildings."), - PALETTES(SquawkabillyWhitePlumage), - ICON(SquawkabillyWhitePlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyWhitePlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyWhitePlumage, + .iconSprite = gMonIcon_SquawkabillyWhitePlumage, + .iconPalIndex = 0, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, #endif //P_FAMILY_SQUAWKABILLY @@ -1371,7 +1669,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 25, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 56, .evYield_Defense = 1, @@ -1379,7 +1677,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nacli"), @@ -1397,17 +1695,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nacli, 64, 64), + .frontPic = gMonFrontPic_Nacli, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Nacli, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nacli, 64, 64), + .backPic = gMonBackPic_Nacli, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nacli), - ICON(Nacli, 2), - //.footprint = gMonFootprint_Nacli, - LEARNSETS(Nacli), + .palette = gMonPalette_Nacli, + .shinyPalette = gMonShinyPalette_Nacli, + .iconSprite = gMonIcon_Nacli, + .iconPalIndex = 2, + //FOOTPRINT(Nacli) + .levelUpLearnset = sNacliLevelUpLearnset, + .teachableLearnset = sNacliTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_NACLSTACK}), }, @@ -1419,7 +1722,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 124, .evYield_Defense = 2, @@ -1427,7 +1730,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Naclstack"), @@ -1445,17 +1748,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Naclstack, 64, 64), + .frontPic = gMonFrontPic_Naclstack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Naclstack, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Naclstack, 64, 64), + .backPic = gMonBackPic_Naclstack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Naclstack), - ICON(Naclstack, 2), // TODO: recolor - //.footprint = gMonFootprint_Naclstack, - LEARNSETS(Naclstack), + .palette = gMonPalette_Naclstack, + .shinyPalette = gMonShinyPalette_Naclstack, + .iconSprite = gMonIcon_Naclstack, + .iconPalIndex = 2, + //FOOTPRINT(Naclstack) + .levelUpLearnset = sNaclstackLevelUpLearnset, + .teachableLearnset = sNaclstackTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GARGANACL}), }, @@ -1467,7 +1775,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, .expYield = 250, .evYield_Defense = 3, @@ -1475,7 +1783,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Garganacl"), @@ -1493,17 +1801,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Garganacl, 64, 64), + .frontPic = gMonFrontPic_Garganacl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Garganacl, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Garganacl, 64, 64), + .backPic = gMonBackPic_Garganacl, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Garganacl), - ICON(Garganacl, 2), - //.footprint = gMonFootprint_Garganacl, - LEARNSETS(Garganacl), + .palette = gMonPalette_Garganacl, + .shinyPalette = gMonShinyPalette_Garganacl, + .iconSprite = gMonIcon_Garganacl, + .iconPalIndex = 2, + //FOOTPRINT(Garganacl) + .levelUpLearnset = sGarganaclLevelUpLearnset, + .teachableLearnset = sGarganaclTeachableLearnset, }, #endif //P_FAMILY_NACLI @@ -1516,7 +1829,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, .expYield = 51, .evYield_SpAttack = 1, @@ -1524,7 +1837,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charcadet"), @@ -1542,17 +1855,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charcadet, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_Charcadet, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 9, .frontAnimFrames = sAnims_Charcadet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Charcadet, 64, 64), - .backPicYOffset = 3, + .backPic = gMonBackPic_Charcadet, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Charcadet), - ICON(Charcadet, 1), - //.footprint = gMonFootprint_Charcadet, - LEARNSETS(Charcadet), + .palette = gMonPalette_Charcadet, + .shinyPalette = gMonShinyPalette_Charcadet, + .iconSprite = gMonIcon_Charcadet, + .iconPalIndex = 0, + //FOOTPRINT(Charcadet) + .levelUpLearnset = sCharcadetLevelUpLearnset, + .teachableLearnset = sCharcadetTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_AUSPICIOUS_ARMOR, SPECIES_ARMAROUGE}, {EVO_ITEM, ITEM_MALICIOUS_ARMOR, SPECIES_CERULEDGE}), }, @@ -1565,7 +1883,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 125, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), .catchRate = 25, .expYield = 263, .evYield_SpAttack = 2, @@ -1573,7 +1891,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = 20, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Armarouge"), @@ -1591,17 +1909,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Armarouge, 64, 64), + .frontPic = gMonFrontPic_Armarouge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Armarouge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Armarouge, 64, 64), + .backPic = gMonBackPic_Armarouge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Armarouge), - ICON(Armarouge, 0), - //.footprint = gMonFootprint_Armarouge, - LEARNSETS(Armarouge), + .palette = gMonPalette_Armarouge, + .shinyPalette = gMonShinyPalette_Armarouge, + .iconSprite = gMonIcon_Armarouge, + .iconPalIndex = 0, + //FOOTPRINT(Armarouge) + .levelUpLearnset = sArmarougeLevelUpLearnset, + .teachableLearnset = sArmarougeTeachableLearnset, }, [SPECIES_CERULEDGE] = @@ -1612,7 +1935,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 25, .expYield = 263, .evYield_Attack = 2, @@ -1620,7 +1943,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = 20, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ceruledge"), @@ -1638,17 +1961,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ceruledge, 64, 64), + .frontPic = gMonFrontPic_Ceruledge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ceruledge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Ceruledge, 64, 64), + .backPic = gMonBackPic_Ceruledge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Ceruledge), - ICON(Ceruledge, 2), - //.footprint = gMonFootprint_Ceruledge, - LEARNSETS(Ceruledge), + .palette = gMonPalette_Ceruledge, + .shinyPalette = gMonShinyPalette_Ceruledge, + .iconSprite = gMonIcon_Ceruledge, + .iconPalIndex = 2, + //FOOTPRINT(Ceruledge) + .levelUpLearnset = sCeruledgeLevelUpLearnset, + .teachableLearnset = sCeruledgeTeachableLearnset, }, #endif //P_FAMILY_CHARCADET @@ -1661,7 +1989,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 59, .baseSpDefense = 35, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 54, .evYield_HP = 1, @@ -1669,7 +1997,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STATIC, ABILITY_DAMP }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Tadbulb"), @@ -1687,18 +2015,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tadbulb, 64, 64), - .frontPicYOffset = 11, + .frontPic = gMonFrontPic_Tadbulb, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, .frontAnimFrames = sAnims_Tadbulb, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, - BACK_PIC(Tadbulb, 64, 64), + .backPic = gMonBackPic_Tadbulb, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tadbulb), - ICON(Tadbulb, 5), // TODO: Redo to 0 - //.footprint = gMonFootprint_Tadbulb, - LEARNSETS(Tadbulb), + .palette = gMonPalette_Tadbulb, + .shinyPalette = gMonShinyPalette_Tadbulb, + .iconSprite = gMonIcon_Tadbulb, + .iconPalIndex = 0, + //FOOTPRINT(Tadbulb) + .levelUpLearnset = sTadbulbLevelUpLearnset, + .teachableLearnset = sTadbulbTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_BELLIBOLT}), }, @@ -1710,7 +2043,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 103, .baseSpDefense = 83, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 50, .expYield = 173, .evYield_HP = 2, @@ -1718,7 +2051,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_ELECTROMORPHOSIS, ABILITY_STATIC, ABILITY_DAMP }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellibolt"), @@ -1736,17 +2069,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellibolt, 64, 64), + .frontPic = gMonFrontPic_Bellibolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Bellibolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bellibolt, 64, 64), + .backPic = gMonBackPic_Bellibolt, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bellibolt), - ICON(Bellibolt, 0), - //.footprint = gMonFootprint_Bellibolt, - LEARNSETS(Bellibolt), + .palette = gMonPalette_Bellibolt, + .shinyPalette = gMonShinyPalette_Bellibolt, + .iconSprite = gMonIcon_Bellibolt, + .iconPalIndex = 0, + //FOOTPRINT(Bellibolt) + .levelUpLearnset = sBelliboltLevelUpLearnset, + .teachableLearnset = sBelliboltTeachableLearnset, }, #endif //P_FAMILY_TADBULB @@ -1759,7 +2097,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 180, .expYield = 56, .evYield_Speed = 1, @@ -1767,7 +2105,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Wattrel"), @@ -1785,17 +2123,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wattrel, 64, 64), + .frontPic = gMonFrontPic_Wattrel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Wattrel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wattrel, 64, 64), + .backPic = gMonBackPic_Wattrel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wattrel), - ICON(Wattrel, 3), - //.footprint = gMonFootprint_Wattrel, - LEARNSETS(Wattrel), + .palette = gMonPalette_Wattrel, + .shinyPalette = gMonShinyPalette_Wattrel, + .iconSprite = gMonIcon_Wattrel, + .iconPalIndex = 0, + //FOOTPRINT(Wattrel) + .levelUpLearnset = sWattrelLevelUpLearnset, + .teachableLearnset = sWattrelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_KILOWATTREL}), }, @@ -1807,7 +2150,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 125, .baseSpAttack = 105, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 90, .expYield = 172, .evYield_Speed = 2, @@ -1815,7 +2158,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Kilowatrel"), @@ -1833,17 +2176,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kilowattrel, 64, 64), + .frontPic = gMonFrontPic_Kilowattrel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kilowattrel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kilowattrel, 64, 64), + .backPic = gMonBackPic_Kilowattrel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kilowattrel), - ICON(Kilowattrel, 3), - //.footprint = gMonFootprint_Kilowattrel, - LEARNSETS(Kilowattrel), + .palette = gMonPalette_Kilowattrel, + .shinyPalette = gMonShinyPalette_Kilowattrel, + .iconSprite = gMonIcon_Kilowattrel, + .iconPalIndex = 0, + //FOOTPRINT(Kilowattrel) + .levelUpLearnset = sKilowattrelLevelUpLearnset, + .teachableLearnset = sKilowattrelTeachableLearnset, }, #endif //P_FAMILY_WATTREL @@ -1856,7 +2204,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 51, .baseSpAttack = 40, .baseSpDefense = 51, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 150, .expYield = 68, .evYield_Attack = 1, @@ -1864,7 +2212,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Maschiff"), @@ -1882,17 +2230,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Maschiff, 64, 64), + .frontPic = gMonFrontPic_Maschiff, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Maschiff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Maschiff, 64, 64), + .backPic = gMonBackPic_Maschiff, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Maschiff), - ICON(Maschiff, 3), - //.footprint = gMonFootprint_Maschiff, - LEARNSETS(Maschiff), + .palette = gMonPalette_Maschiff, + .shinyPalette = gMonShinyPalette_Maschiff, + .iconSprite = gMonIcon_Maschiff, + .iconPalIndex = 0, + //FOOTPRINT(Maschiff) + .levelUpLearnset = sMaschiffLevelUpLearnset, + .teachableLearnset = sMaschiffTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MABOSSTIFF}), }, @@ -1904,7 +2257,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 75, .expYield = 177, .evYield_Attack = 2, @@ -1912,7 +2265,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_GUARD_DOG, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Mabosstiff"), @@ -1930,17 +2283,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mabosstiff, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_Mabosstiff, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_Mabosstiff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mabosstiff, 64, 64), - .backPicYOffset = 14, + .backPic = gMonBackPic_Mabosstiff, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mabosstiff), - ICON(Mabosstiff, 5), - //.footprint = gMonFootprint_Mabosstiff, - LEARNSETS(Mabosstiff), + .palette = gMonPalette_Mabosstiff, + .shinyPalette = gMonShinyPalette_Mabosstiff, + .iconSprite = gMonIcon_Mabosstiff, + .iconPalIndex = 0, + //FOOTPRINT(Mabosstiff) + .levelUpLearnset = sMabosstiffLevelUpLearnset, + .teachableLearnset = sMabosstiffTeachableLearnset, }, #endif //P_FAMILY_MASCHIFF @@ -1953,7 +2311,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 35, - .types = { TYPE_POISON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_POISON, TYPE_NORMAL), .catchRate = 190, .expYield = 58, .evYield_Speed = 1, @@ -1961,7 +2319,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_UNBURDEN, ABILITY_PICKPOCKET, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Shroodle"), @@ -1979,17 +2337,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shroodle, 64, 64), + .frontPic = gMonFrontPic_Shroodle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Shroodle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shroodle, 64, 64), + .backPic = gMonBackPic_Shroodle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Shroodle), - ICON(Shroodle, 0), - //.footprint = gMonFootprint_Shroodle, - LEARNSETS(Shroodle), + .palette = gMonPalette_Shroodle, + .shinyPalette = gMonShinyPalette_Shroodle, + .iconSprite = gMonIcon_Shroodle, + .iconPalIndex = 0, + //FOOTPRINT(Shroodle) + .levelUpLearnset = sShroodleLevelUpLearnset, + .teachableLearnset = sShroodleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_GRAFAIAI}), }, @@ -2001,7 +2364,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, .baseSpAttack = 80, .baseSpDefense = 72, - .types = { TYPE_POISON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_POISON, TYPE_NORMAL), .catchRate = 90, .expYield = 170, .evYield_Speed = 2, @@ -2009,7 +2372,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_UNBURDEN, ABILITY_POISON_TOUCH, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Grafaiai"), @@ -2027,17 +2390,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grafaiai, 64, 64), + .frontPic = gMonFrontPic_Grafaiai, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Grafaiai, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grafaiai, 64, 64), + .backPic = gMonBackPic_Grafaiai, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grafaiai), - ICON(Grafaiai, 0), - //.footprint = gMonFootprint_Grafaiai, - LEARNSETS(Grafaiai), + .palette = gMonPalette_Grafaiai, + .shinyPalette = gMonShinyPalette_Grafaiai, + .iconSprite = gMonIcon_Grafaiai, + .iconPalIndex = 0, + //FOOTPRINT(Grafaiai) + .levelUpLearnset = sGrafaiaiLevelUpLearnset, + .teachableLearnset = sGrafaiaiTeachableLearnset, }, #endif //P_FAMILY_SHROODLE @@ -2050,7 +2418,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 35, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), .catchRate = 190, .expYield = 55, .evYield_Attack = 1, @@ -2058,7 +2426,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bramblin"), @@ -2076,17 +2444,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bramblin, 64, 64), + .frontPic = gMonFrontPic_Bramblin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Bramblin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bramblin, 64, 64), + .backPic = gMonBackPic_Bramblin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bramblin), - ICON(Bramblin, 3), - //.footprint = gMonFootprint_Bramblin, - LEARNSETS(Bramblin), + .palette = gMonPalette_Bramblin, + .shinyPalette = gMonShinyPalette_Bramblin, + .iconSprite = gMonIcon_Bramblin, + .iconPalIndex = 1, + //FOOTPRINT(Bramblin) + .levelUpLearnset = sBramblinLevelUpLearnset, + .teachableLearnset = sBramblinTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BRAMBLEGHAST}), }, @@ -2098,7 +2471,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2106,7 +2479,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Brmblghast"), @@ -2124,17 +2497,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Brambleghast, 64, 64), + .frontPic = gMonFrontPic_Brambleghast, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Brambleghast, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Brambleghast, 64, 64), + .backPic = gMonBackPic_Brambleghast, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Brambleghast), - ICON(Brambleghast, 5), - //.footprint = gMonFootprint_Brambleghast, - LEARNSETS(Brambleghast), + .palette = gMonPalette_Brambleghast, + .shinyPalette = gMonShinyPalette_Brambleghast, + .iconSprite = gMonIcon_Brambleghast, + .iconPalIndex = 2, + //FOOTPRINT(Brambleghast) + .levelUpLearnset = sBrambleghastLevelUpLearnset, + .teachableLearnset = sBrambleghastTeachableLearnset, }, #endif //P_FAMILY_BRAMBLIN @@ -2147,7 +2525,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_GROUND, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GRASS), .catchRate = 190, .expYield = 67, .evYield_SpDefense = 1, @@ -2155,8 +2533,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Toedscool"), .cryId = CRY_TOEDSCOOL, @@ -2173,17 +2551,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toedscool, 64, 64), + .frontPic = gMonFrontPic_Toedscool, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Toedscool, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toedscool, 64, 64), + .backPic = gMonBackPic_Toedscool, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toedscool), - ICON(Toedscool, 0), - //.footprint = gMonFootprint_Toedscool, - LEARNSETS(Toedscool), + .palette = gMonPalette_Toedscool, + .shinyPalette = gMonShinyPalette_Toedscool, + .iconSprite = gMonIcon_Toedscool, + .iconPalIndex = 0, + //FOOTPRINT(Toedscool) + .levelUpLearnset = sToedscoolLevelUpLearnset, + .teachableLearnset = sToedscoolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TOEDSCRUEL}), }, @@ -2195,7 +2578,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_GROUND, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GRASS), .catchRate = 90, .expYield = 180, .evYield_SpDefense = 2, @@ -2203,8 +2586,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Toedscruel"), .cryId = CRY_TOEDSCRUEL, @@ -2221,17 +2604,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toedscruel, 64, 64), + .frontPic = gMonFrontPic_Toedscruel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toedscruel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toedscruel, 64, 64), + .backPic = gMonBackPic_Toedscruel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toedscruel), - ICON(Toedscruel, 0), - //.footprint = gMonFootprint_Toedscruel, - LEARNSETS(Toedscruel), + .palette = gMonPalette_Toedscruel, + .shinyPalette = gMonShinyPalette_Toedscruel, + .iconSprite = gMonIcon_Toedscruel, + .iconPalIndex = 0, + //FOOTPRINT(Toedscruel) + .levelUpLearnset = sToedscruelLevelUpLearnset, + .teachableLearnset = sToedscruelTeachableLearnset, }, #endif //P_FAMILY_TOEDSCOOL @@ -2244,7 +2632,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 35, .baseSpDefense = 55, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 158, .evYield_Defense = 2, @@ -2252,7 +2640,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ANGER_SHELL, ABILITY_SHELL_ARMOR, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Klawf"), @@ -2270,17 +2658,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klawf, 64, 64), + .frontPic = gMonFrontPic_Klawf, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Klawf, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Klawf, 64, 64), + .backPic = gMonBackPic_Klawf, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 20, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Klawf), - ICON(Klawf, 0), - //.footprint = gMonFootprint_Klawf, - LEARNSETS(Klawf), + .palette = gMonPalette_Klawf, + .shinyPalette = gMonShinyPalette_Klawf, + .iconSprite = gMonIcon_Klawf, + .iconPalIndex = 0, + //FOOTPRINT(Klawf) + .levelUpLearnset = sKlawfLevelUpLearnset, + .teachableLearnset = sKlawfTeachableLearnset, }, #endif //P_FAMILY_KLAWF @@ -2293,7 +2686,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 62, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -2301,7 +2694,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Capsakid"), @@ -2319,17 +2712,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Capsakid, 64, 64), + .frontPic = gMonFrontPic_Capsakid, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Capsakid, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Capsakid, 64, 64), + .backPic = gMonBackPic_Capsakid, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Capsakid), - ICON(Capsakid, 1), - //.footprint = gMonFootprint_Capsakid, - LEARNSETS(Capsakid), + .palette = gMonPalette_Capsakid, + .shinyPalette = gMonShinyPalette_Capsakid, + .iconSprite = gMonIcon_Capsakid, + .iconPalIndex = 1, + //FOOTPRINT(Capsakid) + .levelUpLearnset = sCapsakidLevelUpLearnset, + .teachableLearnset = sCapsakidTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SCOVILLAIN}), }, @@ -2341,7 +2739,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 108, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIRE), .catchRate = 75, .expYield = 170, .evYield_Attack = 2, @@ -2349,7 +2747,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Scovillain"), @@ -2367,17 +2765,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scovillain, 64, 64), + .frontPic = gMonFrontPic_Scovillain, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Scovillain, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scovillain, 64, 64), + .backPic = gMonBackPic_Scovillain, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Scovillain), - ICON(Scovillain, 1), - //.footprint = gMonFootprint_Scovillain, - LEARNSETS(Scovillain), + .palette = gMonPalette_Scovillain, + .shinyPalette = gMonShinyPalette_Scovillain, + .iconSprite = gMonIcon_Scovillain, + .iconPalIndex = 1, + //FOOTPRINT(Scovillain) + .levelUpLearnset = sScovillainLevelUpLearnset, + .teachableLearnset = sScovillainTeachableLearnset, }, #endif //P_FAMILY_CAPSAKID @@ -2390,7 +2793,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 30, .baseSpAttack = 31, .baseSpDefense = 58, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, .expYield = 54, .evYield_Defense = 1, @@ -2398,7 +2801,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_SHED_SKIN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Rellor"), @@ -2416,17 +2819,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rellor, 64, 64), + .frontPic = gMonFrontPic_Rellor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Rellor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rellor, 64, 64), + .backPic = gMonBackPic_Rellor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rellor), - ICON(Rellor, 5), - //.footprint = gMonFootprint_Rellor, - LEARNSETS(Rellor), + .palette = gMonPalette_Rellor, + .shinyPalette = gMonShinyPalette_Rellor, + .iconSprite = gMonIcon_Rellor, + .iconPalIndex = 0, + //FOOTPRINT(Rellor) + .levelUpLearnset = sRellorLevelUpLearnset, + .teachableLearnset = sRellorTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_RABSCA}), }, @@ -2438,7 +2846,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 115, .baseSpDefense = 100, - .types = { TYPE_BUG, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), .catchRate = 45, .expYield = 165, .evYield_SpAttack = 2, @@ -2446,7 +2854,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Rabsca"), @@ -2464,17 +2872,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rabsca, 64, 64), + .frontPic = gMonFrontPic_Rabsca, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rabsca, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rabsca, 64, 64), + .backPic = gMonBackPic_Rabsca, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rabsca), - ICON(Rabsca, 0), - //.footprint = gMonFootprint_Rabsca, - LEARNSETS(Rabsca), + .palette = gMonPalette_Rabsca, + .shinyPalette = gMonShinyPalette_Rabsca, + .iconSprite = gMonIcon_Rabsca, + .iconPalIndex = 0, + //FOOTPRINT(Rabsca) + .levelUpLearnset = sRabscaLevelUpLearnset, + .teachableLearnset = sRabscaTeachableLearnset, }, #endif //P_FAMILY_RELLOR @@ -2487,7 +2900,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 55, .baseSpDefense = 30, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, .expYield = 51, .evYield_Speed = 1, @@ -2495,7 +2908,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_ANTICIPATION, ABILITY_FRISK, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Flittle"), @@ -2513,17 +2926,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flittle, 64, 64), + .frontPic = gMonFrontPic_Flittle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Flittle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Flittle, 64, 64), + .backPic = gMonBackPic_Flittle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flittle), - ICON(Flittle, 3), - //.footprint = gMonFootprint_Flittle, - LEARNSETS(Flittle), + .palette = gMonPalette_Flittle, + .shinyPalette = gMonShinyPalette_Flittle, + .iconSprite = gMonIcon_Flittle, + .iconPalIndex = 1, + //FOOTPRINT(Flittle) + .levelUpLearnset = sFlittleLevelUpLearnset, + .teachableLearnset = sFlittleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ESPATHRA}), }, @@ -2535,7 +2953,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 105, .baseSpAttack = 101, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 60, .expYield = 168, .evYield_Speed = 2, @@ -2543,7 +2961,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OPPORTUNIST, ABILITY_FRISK, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Espathra"), @@ -2561,17 +2979,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espathra, 64, 64), + .frontPic = gMonFrontPic_Espathra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Espathra, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Espathra, 64, 64), + .backPic = gMonBackPic_Espathra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Espathra), - ICON(Espathra, 5), - //.footprint = gMonFootprint_Espathra, - LEARNSETS(Espathra), + .palette = gMonPalette_Espathra, + .shinyPalette = gMonShinyPalette_Espathra, + .iconSprite = gMonIcon_Espathra, + .iconPalIndex = 0, + //FOOTPRINT(Espathra) + .levelUpLearnset = sEspathraLevelUpLearnset, + .teachableLearnset = sEspathraTeachableLearnset, }, #endif //P_FAMILY_FLITTLE @@ -2584,7 +3007,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 58, .baseSpAttack = 35, .baseSpDefense = 64, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 190, .expYield = 59, .evYield_SpDefense = 1, @@ -2592,7 +3015,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkatink"), @@ -2610,17 +3033,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkatink, 64, 64), - .frontPicYOffset = 10, + .frontPic = gMonFrontPic_Tinkatink, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 13, .frontAnimFrames = sAnims_Tinkatink, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkatink, 64, 64), - .backPicYOffset = 12, + .backPic = gMonBackPic_Tinkatink, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkatink), - ICON(Tinkatink, 1), - //.footprint = gMonFootprint_Tinkatink, - LEARNSETS(Tinkatink), + .palette = gMonPalette_Tinkatink, + .shinyPalette = gMonShinyPalette_Tinkatink, + .iconSprite = gMonIcon_Tinkatink, + .iconPalIndex = 1, + //FOOTPRINT(Tinkatink) + .levelUpLearnset = sTinkatinkLevelUpLearnset, + .teachableLearnset = sTinkatinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_TINKATUFF}), }, @@ -2632,7 +3060,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 78, .baseSpAttack = 45, .baseSpDefense = 82, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 90, .expYield = 133, .evYield_SpDefense = 2, @@ -2640,7 +3068,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkatuff"), @@ -2658,17 +3086,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkatuff, 64, 64), - .frontPicYOffset = 4, + .frontPic = gMonFrontPic_Tinkatuff, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 9, .frontAnimFrames = sAnims_Tinkatuff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkatuff, 64, 64), - .backPicYOffset = 2, + .backPic = gMonBackPic_Tinkatuff, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkatuff), - ICON(Tinkatuff, 4), - //.footprint = gMonFootprint_Tinkatuff, - LEARNSETS(Tinkatuff), + .palette = gMonPalette_Tinkatuff, + .shinyPalette = gMonShinyPalette_Tinkatuff, + .iconSprite = gMonIcon_Tinkatuff, + .iconPalIndex = 1, + //FOOTPRINT(Tinkatuff) + .levelUpLearnset = sTinkatuffLevelUpLearnset, + .teachableLearnset = sTinkatuffTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TINKATON}), }, @@ -2680,7 +3113,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 94, .baseSpAttack = 70, .baseSpDefense = 105, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 45, .expYield = 253, .evYield_SpDefense = 3, @@ -2688,7 +3121,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkaton"), @@ -2706,17 +3139,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkaton, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_Tinkaton, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tinkaton, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkaton, 64, 64), - .backPicYOffset = 15, + .backPic = gMonBackPic_Tinkaton, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkaton), - ICON(Tinkaton, 4), - //.footprint = gMonFootprint_Tinkaton, - LEARNSETS(Tinkaton), + .palette = gMonPalette_Tinkaton, + .shinyPalette = gMonShinyPalette_Tinkaton, + .iconSprite = gMonIcon_Tinkaton, + .iconPalIndex = 1, + //FOOTPRINT(Tinkaton) + .levelUpLearnset = sTinkatonLevelUpLearnset, + .teachableLearnset = sTinkatonTeachableLearnset, }, #endif //P_FAMILY_TINKATINK @@ -2729,7 +3167,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 95, .baseSpAttack = 35, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 49, .evYield_Speed = 1, @@ -2737,7 +3175,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wiglett"), @@ -2754,17 +3192,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wiglett, 64, 64), + .frontPic = gMonFrontPic_Wiglett, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wiglett, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wiglett, 64, 64), + .backPic = gMonBackPic_Wiglett, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wiglett), - ICON(Wiglett, 0), - //.footprint = gMonFootprint_Wiglett, - LEARNSETS(Wiglett), + .palette = gMonPalette_Wiglett, + .shinyPalette = gMonShinyPalette_Wiglett, + .iconSprite = gMonIcon_Wiglett, + .iconPalIndex = 0, + //FOOTPRINT(Wiglett) + .levelUpLearnset = sWiglettLevelUpLearnset, + .teachableLearnset = sWiglettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_WUGTRIO}), }, @@ -2776,7 +3219,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 120, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 50, .expYield = 149, .evYield_Speed = 2, @@ -2784,7 +3227,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Wugtrio"), @@ -2801,17 +3244,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wugtrio, 64, 64), + .frontPic = gMonFrontPic_Wugtrio, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Wugtrio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wugtrio, 64, 64), + .backPic = gMonBackPic_Wugtrio, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wugtrio), - ICON(Wugtrio, 0), - //.footprint = gMonFootprint_Wugtrio, - LEARNSETS(Wugtrio), + .palette = gMonPalette_Wugtrio, + .shinyPalette = gMonShinyPalette_Wugtrio, + .iconSprite = gMonIcon_Wugtrio, + .iconPalIndex = 0, + //FOOTPRINT(Wugtrio) + .levelUpLearnset = sWugtrioLevelUpLearnset, + .teachableLearnset = sWugtrioTeachableLearnset, }, #endif //P_FAMILY_WIGLETT @@ -2824,7 +3272,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 82, .baseSpAttack = 60, .baseSpDefense = 85, - .types = { TYPE_FLYING, TYPE_DARK }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DARK), .catchRate = 25, .expYield = 243, .evYield_Attack = 2, @@ -2832,7 +3280,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_KEEN_EYE, ABILITY_ROCKY_PAYLOAD }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Bombirdier"), @@ -2850,18 +3298,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bombirdier, 64, 64), + .frontPic = gMonFrontPic_Bombirdier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Bombirdier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Bombirdier, 64, 64), + .backPic = gMonBackPic_Bombirdier, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bombirdier), - ICON(Bombirdier, 0), - //.footprint = gMonFootprint_Bombirdier, - LEARNSETS(Bombirdier), + .palette = gMonPalette_Bombirdier, + .shinyPalette = gMonShinyPalette_Bombirdier, + .iconSprite = gMonIcon_Bombirdier, + .iconPalIndex = 0, + //FOOTPRINT(Bombirdier) + .levelUpLearnset = sBombirdierLevelUpLearnset, + .teachableLearnset = sBombirdierTeachableLearnset, }, #endif //P_FAMILY_BOMBIRDIER @@ -2874,7 +3327,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 200, .expYield = 63, .evYield_Speed = 1, @@ -2882,8 +3335,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, - .abilities = { ABILITY_WATER_VEIL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_WATER_VEIL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Finizen"), .cryId = CRY_FINIZEN, @@ -2899,55 +3352,47 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Finizen, 64, 64), + .frontPic = gMonFrontPic_Finizen, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Finizen, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Finizen, 64, 64), + .backPic = gMonBackPic_Finizen, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Finizen), - ICON(Finizen, 0), - //.footprint = gMonFootprint_Finizen, - LEARNSETS(Finizen), + .palette = gMonPalette_Finizen, + .shinyPalette = gMonShinyPalette_Finizen, + .iconSprite = gMonIcon_Finizen, + .iconPalIndex = 0, + //FOOTPRINT(Finizen) + .levelUpLearnset = sFinizenLevelUpLearnset, + .teachableLearnset = sFinizenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PALAFIN_ZERO}), }, -#define PALAFIN_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Palafin"), \ - .natDexNum = NATIONAL_DEX_PALAFIN, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Palafin, \ - LEARNSETS(Palafin), \ - .formSpeciesIdTable = sPalafinFormSpeciesIdTable, \ - .formChangeTable = sPalafinZeroFormChangeTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.footprint = gMonFootprint_Palafin, - [SPECIES_PALAFIN_ZERO] = { - PALAFIN_MISC_INFO, .baseHP = 100, .baseAttack = 70, .baseDefense = 72, .baseSpeed = 100, .baseSpAttack = 53, .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 160, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Palafin"), .cryId = CRY_PALAFIN_ZERO, + .natDexNum = NATIONAL_DEX_PALAFIN, .categoryName = _("Dolphin"), .height = 13, .weight = 602, @@ -2956,26 +3401,52 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = "appearance if it hears its allies calling for\n" "help. Palafin will never show\n" "anybody its moment of transformation."), - FRONT_PIC(PalafinZero, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PalafinZero, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, - BACK_PIC(PalafinZero, 64, 64), + .frontAnimFrames = sAnims_Palafin, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_PalafinZero, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalafinZero), - ICON(PalafinZero, 0), + .palette = gMonPalette_PalafinZero, + .shinyPalette = gMonShinyPalette_PalafinZero, + .iconSprite = gMonIcon_PalafinZero, + .iconPalIndex = 0, + /*FOOTPRINT(Palafin)*/ + .levelUpLearnset = sPalafinLevelUpLearnset, + .teachableLearnset = sPalafinTeachableLearnset, + .formSpeciesIdTable = sPalafinFormSpeciesIdTable, + .formChangeTable = sPalafinZeroFormChangeTable, }, [SPECIES_PALAFIN_HERO] = { - PALAFIN_MISC_INFO, .baseHP = 100, .baseAttack = 160, .baseDefense = 97, .baseSpeed = 100, .baseSpAttack = 106, .baseSpDefense = 87, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 228, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Palafin"), .cryId = CRY_PALAFIN_HERO, + .natDexNum = NATIONAL_DEX_PALAFIN, .categoryName = _("Hero"), .height = 18, .weight = 974, @@ -2984,13 +3455,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = "awakened. It is now so\n" "extraordinarily strong that it can easily lift a\n" "cruise ship with one fin."), - FRONT_PIC(PalafinHero, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PalafinHero, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - BACK_PIC(PalafinHero, 64, 64), + .frontAnimFrames = sAnims_Palafin, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_PalafinHero, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalafinHero), - ICON(PalafinHero, 0), + .palette = gMonPalette_PalafinHero, + .shinyPalette = gMonShinyPalette_PalafinHero, + .iconSprite = gMonIcon_PalafinHero, + .iconPalIndex = 0, + /*FOOTPRINT(Palafin)*/ + .levelUpLearnset = sPalafinLevelUpLearnset, + .teachableLearnset = sPalafinTeachableLearnset, + .formSpeciesIdTable = sPalafinFormSpeciesIdTable, + .formChangeTable = sPalafinZeroFormChangeTable, }, #endif //P_FAMILY_FINIZEN @@ -3003,7 +3489,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 47, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_STEEL, TYPE_POISON }, + .types = MON_TYPES(TYPE_STEEL, TYPE_POISON), .catchRate = 190, .expYield = 60, .evYield_Attack = 1, @@ -3011,7 +3497,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_SLOW_START }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Varoom"), @@ -3029,17 +3515,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Varoom, 64, 64), + .frontPic = gMonFrontPic_Varoom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Varoom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Varoom, 64, 64), + .backPic = gMonBackPic_Varoom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Varoom), - ICON(Varoom, 5), - //.footprint = gMonFootprint_Varoom, - LEARNSETS(Varoom), + .palette = gMonPalette_Varoom, + .shinyPalette = gMonShinyPalette_Varoom, + .iconSprite = gMonIcon_Varoom, + .iconPalIndex = 2, + //FOOTPRINT(Varoom) + .levelUpLearnset = sVaroomLevelUpLearnset, + .teachableLearnset = sVaroomTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_REVAVROOM}), }, @@ -3051,7 +3542,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 54, .baseSpDefense = 67, - .types = { TYPE_STEEL, TYPE_POISON }, + .types = MON_TYPES(TYPE_STEEL, TYPE_POISON), .catchRate = 75, .expYield = 175, .evYield_Attack = 2, @@ -3059,7 +3550,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_FILTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Revavroom"), @@ -3077,17 +3568,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Revavroom, 64, 64), + .frontPic = gMonFrontPic_Revavroom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Revavroom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Revavroom, 64, 64), + .backPic = gMonBackPic_Revavroom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Revavroom), - ICON(Revavroom, 5), - //.footprint = gMonFootprint_Revavroom, - LEARNSETS(Revavroom), + .palette = gMonPalette_Revavroom, + .shinyPalette = gMonShinyPalette_Revavroom, + .iconSprite = gMonIcon_Revavroom, + .iconPalIndex = 0, + //FOOTPRINT(Revavroom) + .levelUpLearnset = sRevavroomLevelUpLearnset, + .teachableLearnset = sRevavroomTeachableLearnset, }, #endif //P_FAMILY_VAROOM @@ -3100,7 +3596,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 121, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_DRAGON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_NORMAL), .catchRate = 190, .expYield = 175, .evYield_Speed = 2, @@ -3108,7 +3604,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cyclizar"), @@ -3126,17 +3622,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cyclizar, 64, 64), + .frontPic = gMonFrontPic_Cyclizar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cyclizar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cyclizar, 64, 64), + .backPic = gMonBackPic_Cyclizar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cyclizar), - ICON(Cyclizar, 1), - //.footprint = gMonFootprint_Cyclizar, - LEARNSETS(Cyclizar), + .palette = gMonPalette_Cyclizar, + .shinyPalette = gMonShinyPalette_Cyclizar, + .iconSprite = gMonIcon_Cyclizar, + .iconPalIndex = 1, + //FOOTPRINT(Cyclizar) + .levelUpLearnset = sCyclizarLevelUpLearnset, + .teachableLearnset = sCyclizarTeachableLearnset, }, #endif //P_FAMILY_CYCLIZAR @@ -3149,7 +3650,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 55, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 25, .expYield = 240, .evYield_Defense = 2, @@ -3157,7 +3658,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARTH_EATER, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Orthworm"), @@ -3175,17 +3676,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Orthworm, 64, 64), + .frontPic = gMonFrontPic_Orthworm, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Orthworm, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Orthworm, 64, 64), + .backPic = gMonBackPic_Orthworm, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Orthworm), - ICON(Orthworm, 4), - //.footprint = gMonFootprint_Orthworm, - LEARNSETS(Orthworm), + .palette = gMonPalette_Orthworm, + .shinyPalette = gMonShinyPalette_Orthworm, + .iconSprite = gMonIcon_Orthworm, + .iconPalIndex = 0, + //FOOTPRINT(Orthworm) + .levelUpLearnset = sOrthwormLevelUpLearnset, + .teachableLearnset = sOrthwormTeachableLearnset, }, #endif //P_FAMILY_ORTHWORM @@ -3198,7 +3704,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 105, .baseSpDefense = 60, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 70, .expYield = 70, .evYield_SpAttack = 1, @@ -3206,7 +3712,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glimmet"), @@ -3224,18 +3730,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glimmet, 64, 64), + .frontPic = gMonFrontPic_Glimmet, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Glimmet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 11, - BACK_PIC(Glimmet, 64, 64), + .backPic = gMonBackPic_Glimmet, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glimmet), - ICON(Glimmet, 0), - //.footprint = gMonFootprint_Glimmet, - LEARNSETS(Glimmet), + .palette = gMonPalette_Glimmet, + .shinyPalette = gMonShinyPalette_Glimmet, + .iconSprite = gMonIcon_Glimmet, + .iconPalIndex = 0, + //FOOTPRINT(Glimmet) + .levelUpLearnset = sGlimmetLevelUpLearnset, + .teachableLearnset = sGlimmetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_GLIMMORA}), }, @@ -3247,7 +3758,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 86, .baseSpAttack = 130, .baseSpDefense = 81, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 25, .expYield = 184, .evYield_SpAttack = 2, @@ -3255,7 +3766,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glimmora"), @@ -3273,18 +3784,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glimmora, 64, 64), + .frontPic = gMonFrontPic_Glimmora, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Glimmora, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Glimmora, 64, 64), + .backPic = gMonBackPic_Glimmora, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glimmora), - ICON(Glimmora, 0), - //.footprint = gMonFootprint_Glimmora, - LEARNSETS(Glimmora), + .palette = gMonPalette_Glimmora, + .shinyPalette = gMonShinyPalette_Glimmora, + .iconSprite = gMonIcon_Glimmora, + .iconPalIndex = 0, + //FOOTPRINT(Glimmora) + .levelUpLearnset = sGlimmoraLevelUpLearnset, + .teachableLearnset = sGlimmoraTeachableLearnset, }, #endif //P_FAMILY_GLIMMET @@ -3297,7 +3813,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 34, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 120, .expYield = 58, .evYield_Attack = 1, @@ -3305,7 +3821,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_FLUFFY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Greavard"), @@ -3323,17 +3839,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Greavard, 64, 64), + .frontPic = gMonFrontPic_Greavard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Greavard, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Greavard, 64, 64), + .backPic = gMonBackPic_Greavard, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Greavard), - ICON(Greavard, 2), - //.footprint = gMonFootprint_Greavard, - LEARNSETS(Greavard), + .palette = gMonPalette_Greavard, + .shinyPalette = gMonShinyPalette_Greavard, + .iconSprite = gMonIcon_Greavard, + .iconPalIndex = 0, + //FOOTPRINT(Greavard) + .levelUpLearnset = sGreavardLevelUpLearnset, + .teachableLearnset = sGreavardTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 30, SPECIES_HOUNDSTONE}), }, @@ -3345,7 +3866,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 68, .baseSpAttack = 50, .baseSpDefense = 97, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 60, .expYield = 171, .evYield_Attack = 2, @@ -3353,7 +3874,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_NONE, ABILITY_FLUFFY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Houndstone"), @@ -3371,17 +3892,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndstone, 64, 64), + .frontPic = gMonFrontPic_Houndstone, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Houndstone, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Houndstone, 64, 64), + .backPic = gMonBackPic_Houndstone, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Houndstone), - ICON(Houndstone, 5), - //.footprint = gMonFootprint_Houndstone, - LEARNSETS(Houndstone), + .palette = gMonPalette_Houndstone, + .shinyPalette = gMonShinyPalette_Houndstone, + .iconSprite = gMonIcon_Houndstone, + .iconPalIndex = 2, + //FOOTPRINT(Houndstone) + .levelUpLearnset = sHoundstoneLevelUpLearnset, + .teachableLearnset = sHoundstoneTeachableLearnset, }, #endif //P_FAMILY_GREAVARD @@ -3394,7 +3920,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 75, .baseSpDefense = 64, - .types = { TYPE_FLYING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FLYING, TYPE_FIGHTING), .catchRate = 100, .expYield = 175, .evYield_Attack = 2, @@ -3402,7 +3928,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SCRAPPY, ABILITY_TANGLED_FEET, ABILITY_COSTAR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Flamigo"), @@ -3420,17 +3946,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flamigo, 64, 64), + .frontPic = gMonFrontPic_Flamigo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Flamigo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Flamigo, 64, 64), + .backPic = gMonBackPic_Flamigo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flamigo), - ICON(Flamigo, 4), - //.footprint = gMonFootprint_Flamigo, - LEARNSETS(Flamigo), + .palette = gMonPalette_Flamigo, + .shinyPalette = gMonShinyPalette_Flamigo, + .iconSprite = gMonIcon_Flamigo, + .iconPalIndex = 1, + //FOOTPRINT(Flamigo) + .levelUpLearnset = sFlamigoLevelUpLearnset, + .teachableLearnset = sFlamigoTeachableLearnset, }, #endif //P_FAMILY_FLAMIGO @@ -3443,7 +3974,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 43, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 150, .expYield = 67, .evYield_HP = 1, @@ -3451,7 +3982,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SNOW_CLOAK, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cetoddle"), @@ -3469,17 +4000,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cetoddle, 64, 64), + .frontPic = gMonFrontPic_Cetoddle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Cetoddle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cetoddle, 64, 64), + .backPic = gMonBackPic_Cetoddle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cetoddle), - ICON(Cetoddle, 0), - //.footprint = gMonFootprint_Cetoddle, - LEARNSETS(Cetoddle), + .palette = gMonPalette_Cetoddle, + .shinyPalette = gMonShinyPalette_Cetoddle, + .iconSprite = gMonIcon_Cetoddle, + .iconPalIndex = 0, + //FOOTPRINT(Cetoddle) + .levelUpLearnset = sCetoddleLevelUpLearnset, + .teachableLearnset = sCetoddleTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_CETITAN}), }, @@ -3491,7 +4027,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 73, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 50, .expYield = 182, .evYield_HP = 2, @@ -3499,7 +4035,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SLUSH_RUSH, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cetitan"), @@ -3517,17 +4053,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cetitan, 64, 64), + .frontPic = gMonFrontPic_Cetitan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cetitan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cetitan, 64, 64), + .backPic = gMonBackPic_Cetitan, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cetitan), - ICON(Cetitan, 0), - //.footprint = gMonFootprint_Cetitan, - LEARNSETS(Cetitan), + .palette = gMonPalette_Cetitan, + .shinyPalette = gMonShinyPalette_Cetitan, + .iconSprite = gMonIcon_Cetitan, + .iconPalIndex = 0, + //FOOTPRINT(Cetitan) + .levelUpLearnset = sCetitanLevelUpLearnset, + .teachableLearnset = sCetitanTeachableLearnset, }, #endif //P_FAMILY_CETODDLE @@ -3540,7 +4081,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 78, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 100, .expYield = 167, .evYield_Attack = 2, @@ -3548,7 +4089,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHARPNESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Veluza"), @@ -3566,18 +4107,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Veluza, 64, 64), + .frontPic = gMonFrontPic_Veluza, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Veluza, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Veluza, 64, 64), + .backPic = gMonBackPic_Veluza, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Veluza), - ICON(Veluza, 4), - //.footprint = gMonFootprint_Veluza, - LEARNSETS(Veluza), + .palette = gMonPalette_Veluza, + .shinyPalette = gMonShinyPalette_Veluza, + .iconSprite = gMonIcon_Veluza, + .iconPalIndex = 1, + //FOOTPRINT(Veluza) + .levelUpLearnset = sVeluzaLevelUpLearnset, + .teachableLearnset = sVeluzaTeachableLearnset, }, #endif //P_FAMILY_VELUZA @@ -3590,7 +4136,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 25, .expYield = 265, .evYield_HP = 3, @@ -3598,7 +4144,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_UNAWARE, ABILITY_OBLIVIOUS, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dondozo"), @@ -3616,101 +4162,182 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dondozo, 64, 64), + .frontPic = gMonFrontPic_Dondozo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Dondozo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 1, - BACK_PIC(Dondozo, 64, 64), + .backPic = gMonBackPic_Dondozo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dondozo), - ICON(Dondozo, 0), - //.footprint = gMonFootprint_Dondozo, - LEARNSETS(Dondozo), + .palette = gMonPalette_Dondozo, + .shinyPalette = gMonShinyPalette_Dondozo, + .iconSprite = gMonIcon_Dondozo, + .iconPalIndex = 0, + //FOOTPRINT(Dondozo) + .levelUpLearnset = sDondozoLevelUpLearnset, + .teachableLearnset = sDondozoTeachableLearnset, }, #endif //P_FAMILY_DONDOZO #if P_FAMILY_TATSUGIRI -#define TATSUGIRI_MISC_INFO \ - .baseHP = 68, \ - .baseAttack = 50, \ - .baseDefense = 60, \ - .baseSpeed = 82, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_DRAGON, TYPE_WATER }, \ - .catchRate = 100, \ - .expYield = 166, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, \ - .speciesName = _("Tatsugiri"), \ - .natDexNum = NATIONAL_DEX_TATSUGIRI, \ - .categoryName = _("Mimicry"), \ - .height = 3, \ - .weight = 80, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 14, \ - .frontAnimFrames = sAnims_Tatsugiri, \ - .backPicYOffset = 17, \ - LEARNSETS(Tatsugiri), \ - .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Tatsugiri, - [SPECIES_TATSUGIRI_CURLY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_CURLY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "This is a small dragon Pokémon. It\n" "lives inside the mouth of Dondozo to\n" "protect itself from enemies on the\n" "outside."), - FRONT_PIC(TatsugiriCurly, 64, 64), - BACK_PIC(TatsugiriCurly, 64, 64), - PALETTES(TatsugiriCurly), - ICON(TatsugiriCurly, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriCurly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriCurly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriCurly, + .shinyPalette = gMonShinyPalette_TatsugiriCurly, + .iconSprite = gMonIcon_TatsugiriCurly, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, [SPECIES_TATSUGIRI_DROOPY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_DROOPY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "This Pokémon tricks its opponents\n" "by playing dead. It is small and\n" "weak, but it uses its smarts to survive."), - FRONT_PIC(TatsugiriDroopy, 64, 64), - BACK_PIC(TatsugiriDroopy, 64, 64), - PALETTES(TatsugiriDroopy), - ICON(TatsugiriDroopy, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriDroopy, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriDroopy, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriDroopy, + .shinyPalette = gMonShinyPalette_TatsugiriDroopy, + .iconSprite = gMonIcon_TatsugiriDroopy, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, [SPECIES_TATSUGIRI_STRETCHY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_STRETCHY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "It's one of the most intelligent\n" "dragon Pokémon. It camouflages itself\n" "by inflating its throat sac."), - FRONT_PIC(TatsugiriStretchy, 64, 64), - BACK_PIC(TatsugiriStretchy, 64, 64), - PALETTES(TatsugiriStretchy), - ICON(TatsugiriStretchy, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriStretchy, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriStretchy, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriStretchy, + .shinyPalette = gMonShinyPalette_TatsugiriStretchy, + .iconSprite = gMonIcon_TatsugiriStretchy, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, #endif //P_FAMILY_TATSUGIRI @@ -3723,7 +4350,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 87, .baseSpAttack = 53, .baseSpDefense = 53, - .types = { TYPE_GROUND, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FIGHTING), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -3731,10 +4358,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isParadoxForm = TRUE, .speciesName = _("Great Tusk"), .cryId = CRY_GREAT_TUSK, .natDexNum = NATIONAL_DEX_GREAT_TUSK, @@ -3750,17 +4376,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GreatTusk, 64, 64), + .frontPic = gMonFrontPic_GreatTusk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_GreatTusk, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GreatTusk, 64, 64), + .backPic = gMonBackPic_GreatTusk, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GreatTusk), - ICON(GreatTusk, 0), - //.footprint = gMonFootprint_GreatTusk, - LEARNSETS(GreatTusk), + .palette = gMonPalette_GreatTusk, + .shinyPalette = gMonShinyPalette_GreatTusk, + .iconSprite = gMonIcon_GreatTusk, + .iconPalIndex = 0, + //FOOTPRINT(GreatTusk) + .isParadoxForm = TRUE, + .levelUpLearnset = sGreatTuskLevelUpLearnset, + .teachableLearnset = sGreatTuskTeachableLearnset, }, #endif //P_FAMILY_GREAT_TUSK @@ -3773,7 +4405,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 111, .baseSpAttack = 65, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_PSYCHIC), .catchRate = 50, .expYield = 285, .evYield_HP = 3, @@ -3781,10 +4413,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isParadoxForm = TRUE, .speciesName = _("ScreamTail"), .cryId = CRY_SCREAM_TAIL, .natDexNum = NATIONAL_DEX_SCREAM_TAIL, @@ -3800,17 +4431,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ScreamTail, 64, 64), - .frontPicYOffset = 7, + .frontPic = gMonFrontPic_ScreamTail, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, .frontAnimFrames = sAnims_ScreamTail, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ScreamTail, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_ScreamTail, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ScreamTail), - ICON(ScreamTail, 0), - //.footprint = gMonFootprint_ScreamTail, - LEARNSETS(ScreamTail), + .palette = gMonPalette_ScreamTail, + .shinyPalette = gMonShinyPalette_ScreamTail, + .iconSprite = gMonIcon_ScreamTail, + .iconPalIndex = 0, + //FOOTPRINT(ScreamTail) + .isParadoxForm = TRUE, + .levelUpLearnset = sScreamTailLevelUpLearnset, + .teachableLearnset = sScreamTailTeachableLearnset, }, #endif //P_FAMILY_SCREAM_TAIL @@ -3823,7 +4460,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 55, .baseSpAttack = 79, .baseSpDefense = 99, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 50, .expYield = 285, .evYield_Attack = 3, @@ -3831,10 +4468,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("BruteBonet"), .cryId = CRY_BRUTE_BONNET, .natDexNum = NATIONAL_DEX_BRUTE_BONNET, @@ -3850,17 +4486,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BruteBonnet, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_BruteBonnet, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, .frontAnimFrames = sAnims_BruteBonnet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BruteBonnet, 64, 64), - .backPicYOffset = 12, + .backPic = gMonBackPic_BruteBonnet, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BruteBonnet), - ICON(BruteBonnet, 1), - //.footprint = gMonFootprint_BruteBonnet, - LEARNSETS(BruteBonnet), + .palette = gMonPalette_BruteBonnet, + .shinyPalette = gMonShinyPalette_BruteBonnet, + .iconSprite = gMonIcon_BruteBonnet, + .iconPalIndex = 1, + //FOOTPRINT(BruteBonnet) + .isParadoxForm = TRUE, + .levelUpLearnset = sBruteBonnetLevelUpLearnset, + .teachableLearnset = sBruteBonnetTeachableLearnset, }, #endif //P_FAMILY_BRUTE_BONNET @@ -3873,7 +4515,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 135, - .types = { TYPE_GHOST, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), .catchRate = 30, .expYield = 285, .evYield_Speed = 1, @@ -3883,10 +4525,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("FluttrMane"), .cryId = CRY_FLUTTER_MANE, .natDexNum = NATIONAL_DEX_FLUTTER_MANE, @@ -3902,18 +4543,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(FlutterMane, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_FlutterMane, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 8, .frontAnimFrames = sAnims_FlutterMane, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 5, - BACK_PIC(FlutterMane, 64, 64), - .backPicYOffset = 10, + .enemyMonElevation = 18, + .backPic = gMonBackPic_FlutterMane, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FlutterMane), - ICON(FlutterMane, 4), - //.footprint = gMonFootprint_FlutterMane, - LEARNSETS(FlutterMane), + .palette = gMonPalette_FlutterMane, + .shinyPalette = gMonShinyPalette_FlutterMane, + .iconSprite = gMonIcon_FlutterMane, + .iconPalIndex = 2, + //FOOTPRINT(FlutterMane) + .isParadoxForm = TRUE, + .levelUpLearnset = sFlutterManeLevelUpLearnset, + .teachableLearnset = sFlutterManeTeachableLearnset, }, #endif //P_FAMILY_FLUTTER_MANE @@ -3926,7 +4573,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 81, .baseSpAttack = 85, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -3934,10 +4581,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("SlithrWing"), .cryId = CRY_SLITHER_WING, .natDexNum = NATIONAL_DEX_SLITHER_WING, @@ -3952,17 +4598,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SlitherWing, 64, 64), + .frontPic = gMonFrontPic_SlitherWing, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlitherWing, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlitherWing, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_SlitherWing, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlitherWing), - ICON(SlitherWing, 3), - //.footprint = gMonFootprint_SlitherWing, - LEARNSETS(SlitherWing), + .palette = gMonPalette_SlitherWing, + .shinyPalette = gMonShinyPalette_SlitherWing, + .iconSprite = gMonIcon_SlitherWing, + .iconPalIndex = 1, + //FOOTPRINT(SlitherWing) + .isParadoxForm = TRUE, + .levelUpLearnset = sSlitherWingLevelUpLearnset, + .teachableLearnset = sSlitherWingTeachableLearnset, }, #endif //P_FAMILY_SLITHER_WING @@ -3975,7 +4627,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 101, .baseSpAttack = 121, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GROUND), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -3983,10 +4635,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("SndyShocks"), .cryId = CRY_SANDY_SHOCKS, .natDexNum = NATIONAL_DEX_SANDY_SHOCKS, @@ -4002,17 +4653,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandyShocks, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_SandyShocks, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, .frontAnimFrames = sAnims_SandyShocks, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandyShocks, 64, 64), - .backPicYOffset = 10, + .backPic = gMonBackPic_SandyShocks, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandyShocks), - ICON(SandyShocks, 0), - //.footprint = gMonFootprint_SandyShocks, - LEARNSETS(SandyShocks), + .palette = gMonPalette_SandyShocks, + .shinyPalette = gMonShinyPalette_SandyShocks, + .iconSprite = gMonIcon_SandyShocks, + .iconPalIndex = 0, + //FOOTPRINT(SandyShocks) + .isParadoxForm = TRUE, + .levelUpLearnset = sSandyShocksLevelUpLearnset, + .teachableLearnset = sSandyShocksTeachableLearnset, }, #endif //P_FAMILY_SANDY_SHOCKS @@ -4025,7 +4682,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 106, .baseSpAttack = 72, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), .catchRate = 30, .expYield = 285, .evYield_Defense = 3, @@ -4033,10 +4690,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("IronTreads"), .cryId = CRY_IRON_TREADS, .natDexNum = NATIONAL_DEX_IRON_TREADS, @@ -4052,17 +4708,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronTreads, 64, 64), + .frontPic = gMonFrontPic_IronTreads, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_IronTreads, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronTreads, 64, 64), + .backPic = gMonBackPic_IronTreads, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronTreads), - ICON(IronTreads, 0), - //.footprint = gMonFootprint_IronTreads, - LEARNSETS(IronTreads), + .palette = gMonPalette_IronTreads, + .shinyPalette = gMonShinyPalette_IronTreads, + .iconSprite = gMonIcon_IronTreads, + .iconPalIndex = 1, + //FOOTPRINT(IronTreads) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronTreadsLevelUpLearnset, + .teachableLearnset = sIronTreadsTeachableLearnset, }, #endif //P_FAMILY_IRON_TREADS @@ -4075,7 +4737,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 136, .baseSpAttack = 124, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 50, .expYield = 285, .evYield_Speed = 3, @@ -4083,10 +4745,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isParadoxForm = TRUE, .speciesName = _("IronBundle"), .cryId = CRY_IRON_BUNDLE, .natDexNum = NATIONAL_DEX_IRON_BUNDLE, @@ -4102,17 +4763,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronBundle, 64, 64), - .frontPicYOffset = 4, + .frontPic = gMonFrontPic_IronBundle, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 8, .frontAnimFrames = sAnims_IronBundle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronBundle, 64, 64), - .backPicYOffset = 9, + .backPic = gMonBackPic_IronBundle, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronBundle), - ICON(IronBundle, 0), - //.footprint = gMonFootprint_IronBundle, - LEARNSETS(IronBundle), + .palette = gMonPalette_IronBundle, + .shinyPalette = gMonShinyPalette_IronBundle, + .iconSprite = gMonIcon_IronBundle, + .iconPalIndex = 0, + //FOOTPRINT(IronBundle) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronBundleLevelUpLearnset, + .teachableLearnset = sIronBundleTeachableLearnset, }, #endif //P_FAMILY_IRON_BUNDLE @@ -4125,7 +4792,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 68, - .types = { TYPE_FIGHTING, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_ELECTRIC), .catchRate = 50, .expYield = 285, .evYield_Attack = 3, @@ -4133,10 +4800,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("Iron Hands"), .cryId = CRY_IRON_HANDS, .natDexNum = NATIONAL_DEX_IRON_HANDS, @@ -4152,17 +4818,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronHands, 64, 64), + .frontPic = gMonFrontPic_IronHands, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_IronHands, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronHands, 64, 64), + .backPic = gMonBackPic_IronHands, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronHands), - ICON(IronHands, 0), - //.footprint = gMonFootprint_IronHands, - LEARNSETS(IronHands), + .palette = gMonPalette_IronHands, + .shinyPalette = gMonShinyPalette_IronHands, + .iconSprite = gMonIcon_IronHands, + .iconPalIndex = 0, + //FOOTPRINT(IronHands) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronHandsLevelUpLearnset, + .teachableLearnset = sIronHandsTeachableLearnset, }, #endif //P_FAMILY_IRON_HANDS @@ -4175,7 +4847,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 108, .baseSpAttack = 122, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -4183,10 +4855,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("IronJuguls"), .cryId = CRY_IRON_JUGULIS, .natDexNum = NATIONAL_DEX_IRON_JUGULIS, @@ -4202,18 +4873,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronJugulis, 64, 64), + .frontPic = gMonFrontPic_IronJugulis, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_IronJugulis, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(IronJugulis, 64, 64), + .backPic = gMonBackPic_IronJugulis, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronJugulis), - ICON(IronJugulis, 2), - //.footprint = gMonFootprint_IronJugulis, - LEARNSETS(IronJugulis), + .palette = gMonPalette_IronJugulis, + .shinyPalette = gMonShinyPalette_IronJugulis, + .iconSprite = gMonIcon_IronJugulis, + .iconPalIndex = 0, + //FOOTPRINT(IronJugulis) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronJugulisLevelUpLearnset, + .teachableLearnset = sIronJugulisTeachableLearnset, }, #endif //P_FAMILY_IRON_JUGULIS @@ -4226,7 +4903,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, .baseSpAttack = 140, .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_POISON }, + .types = MON_TYPES(TYPE_FIRE, TYPE_POISON), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -4234,10 +4911,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("Iron Moth"), .cryId = CRY_IRON_MOTH, .natDexNum = NATIONAL_DEX_IRON_MOTH, @@ -4253,18 +4929,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronMoth, 64, 64), + .frontPic = gMonFrontPic_IronMoth, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_IronMoth, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(IronMoth, 64, 64), + .backPic = gMonBackPic_IronMoth, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronMoth), - ICON(IronMoth, 3), - //.footprint = gMonFootprint_IronMoth, - LEARNSETS(IronMoth), + .palette = gMonPalette_IronMoth, + .shinyPalette = gMonShinyPalette_IronMoth, + .iconSprite = gMonIcon_IronMoth, + .iconPalIndex = 3, + //FOOTPRINT(IronMoth) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronMothLevelUpLearnset, + .teachableLearnset = sIronMothTeachableLearnset, }, #endif //P_FAMILY_IRON_MOTH @@ -4277,7 +4959,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 72, .baseSpAttack = 70, .baseSpDefense = 84, - .types = { TYPE_ROCK, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -4285,10 +4967,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isParadoxForm = TRUE, .speciesName = _("IronThorns"), .cryId = CRY_IRON_THORNS, .natDexNum = NATIONAL_DEX_IRON_THORNS, @@ -4304,17 +4985,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronThorns, 64, 64), + .frontPic = gMonFrontPic_IronThorns, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronThorns, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronThorns, 64, 64), + .backPic = gMonBackPic_IronThorns, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronThorns), - ICON(IronThorns, 1), - //.footprint = gMonFootprint_IronThorns, - LEARNSETS(IronThorns), + .palette = gMonPalette_IronThorns, + .shinyPalette = gMonShinyPalette_IronThorns, + .iconSprite = gMonIcon_IronThorns, + .iconPalIndex = 1, + //FOOTPRINT(IronThorns) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronThornsLevelUpLearnset, + .teachableLearnset = sIronThornsTeachableLearnset, }, #endif //P_FAMILY_IRON_THORNS @@ -4327,7 +5014,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 55, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 45, .expYield = 64, .evYield_Attack = 1, @@ -4335,7 +5022,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Frigibax"), @@ -4353,17 +5040,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frigibax, 64, 64), + .frontPic = gMonFrontPic_Frigibax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Frigibax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Frigibax, 64, 64), + .backPic = gMonBackPic_Frigibax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Frigibax), - ICON(Frigibax, 3), - //.footprint = gMonFootprint_Frigibax, - LEARNSETS(Frigibax), + .palette = gMonPalette_Frigibax, + .shinyPalette = gMonShinyPalette_Frigibax, + .iconSprite = gMonIcon_Frigibax, + .iconPalIndex = 0, + //FOOTPRINT(Frigibax) + .levelUpLearnset = sFrigibaxLevelUpLearnset, + .teachableLearnset = sFrigibaxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARCTIBAX}), }, @@ -4375,7 +5067,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 62, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 25, .expYield = 148, .evYield_Attack = 2, @@ -4383,7 +5075,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctibax"), @@ -4401,17 +5093,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arctibax, 64, 64), + .frontPic = gMonFrontPic_Arctibax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Arctibax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctibax, 64, 64), + .backPic = gMonBackPic_Arctibax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctibax), - ICON(Arctibax, 0), - //.footprint = gMonFootprint_Arctibax, - LEARNSETS(Arctibax), + .palette = gMonPalette_Arctibax, + .shinyPalette = gMonShinyPalette_Arctibax, + .iconSprite = gMonIcon_Arctibax, + .iconPalIndex = 0, + //FOOTPRINT(Arctibax) + .levelUpLearnset = sArctibaxLevelUpLearnset, + .teachableLearnset = sArctibaxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BAXCALIBUR}), }, @@ -4423,7 +5120,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 87, .baseSpAttack = 75, .baseSpDefense = 86, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 10, .expYield = 300, .evYield_Attack = 3, @@ -4431,7 +5128,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Baxcalibur"), @@ -4449,53 +5146,48 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Baxcalibur, 64, 64), + .frontPic = gMonFrontPic_Baxcalibur, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Baxcalibur, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Baxcalibur, 64, 64), + .backPic = gMonBackPic_Baxcalibur, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Baxcalibur), - ICON(Baxcalibur, 0), - //.footprint = gMonFootprint_Baxcalibur, - LEARNSETS(Baxcalibur), + .palette = gMonPalette_Baxcalibur, + .shinyPalette = gMonShinyPalette_Baxcalibur, + .iconSprite = gMonIcon_Baxcalibur, + .iconPalIndex = 0, + //FOOTPRINT(Baxcalibur) + .levelUpLearnset = sBaxcaliburLevelUpLearnset, + .teachableLearnset = sBaxcaliburTeachableLearnset, }, #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL -#define GIMMIGHOUL_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 60, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 50, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .speciesName = _("Gimmighoul"), \ - .cryId = CRY_GIMMIGHOUL, \ - .natDexNum = NATIONAL_DEX_GIMMIGHOUL, \ - .frontAnimFrames = sAnims_Gimmighoul, \ - LEARNSETS(Gimmighoul), \ - .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, \ - .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Gimmighoul, - [SPECIES_GIMMIGHOUL_CHEST] = { - GIMMIGHOUL_MISC_INFO, .baseHP = 45, .baseAttack = 30, .baseDefense = 70, .baseSpeed = 10, .baseSpAttack = 75, .baseSpDefense = 70, - .abilities = { ABILITY_RATTLED, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = 60, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RATTLED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Gimmighoul"), + .cryId = CRY_GIMMIGHOUL, + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, .categoryName = _("Coin Chest"), .height = 3, .weight = 50, @@ -4508,25 +5200,48 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GimmighoulChest, 64, 64), + .frontPic = gMonFrontPic_GimmighoulChest, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - BACK_PIC(GimmighoulChest, 64, 64), + .frontAnimFrames = sAnims_Gimmighoul, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GimmighoulChest, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, - PALETTES(GimmighoulChest), - ICON(GimmighoulChest, 0), + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GimmighoulChest, + .shinyPalette = gMonShinyPalette_GimmighoulChest, + .iconSprite = gMonIcon_GimmighoulChest, + .iconPalIndex = 0, + //FOOTPRINT(Gimmighoul) + .levelUpLearnset = sGimmighoulLevelUpLearnset, + .teachableLearnset = sGimmighoulTeachableLearnset, + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}), }, [SPECIES_GIMMIGHOUL_ROAMING] = { - GIMMIGHOUL_MISC_INFO, .baseHP = 45, .baseAttack = 30, .baseDefense = 25, .baseSpeed = 80, .baseSpAttack = 75, .baseSpDefense = 45, - .abilities = { ABILITY_RUN_AWAY, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = 60, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RUN_AWAY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Gimmighoul"), + .cryId = CRY_GIMMIGHOUL, + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, .categoryName = _("Coin Hunter"), .height = 1, .weight = 1, @@ -4539,12 +5254,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GimmighoulRoaming, 64, 64), + .frontPic = gMonFrontPic_GimmighoulRoaming, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 11, - BACK_PIC(GimmighoulRoaming, 64, 64), + .frontAnimFrames = sAnims_Gimmighoul, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GimmighoulRoaming, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, - PALETTES(GimmighoulRoaming), - ICON(GimmighoulRoaming, 0), + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GimmighoulRoaming, + .shinyPalette = gMonShinyPalette_GimmighoulRoaming, + .iconSprite = gMonIcon_GimmighoulRoaming, + .iconPalIndex = 0, + //FOOTPRINT(Gimmighoul) + .levelUpLearnset = sGimmighoulLevelUpLearnset, + .teachableLearnset = sGimmighoulTeachableLearnset, + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}), }, [SPECIES_GHOLDENGO] = @@ -4555,7 +5282,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 84, .baseSpAttack = 133, .baseSpDefense = 91, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 45, .expYield = 275, .evYield_SpAttack = 2, @@ -4563,8 +5290,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Gholdengo"), .cryId = CRY_GHOLDENGO, @@ -4581,17 +5308,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gholdengo, 64, 64), + .frontPic = gMonFrontPic_Gholdengo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gholdengo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gholdengo, 64, 64), + .backPic = gMonBackPic_Gholdengo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gholdengo), - ICON(Gholdengo, 0), - //.footprint = gMonFootprint_Gholdengo, - LEARNSETS(Gholdengo), + .palette = gMonPalette_Gholdengo, + .shinyPalette = gMonShinyPalette_Gholdengo, + .iconSprite = gMonIcon_Gholdengo, + .iconPalIndex = 0, + //FOOTPRINT(Gholdengo) + .levelUpLearnset = sGholdengoLevelUpLearnset, + .teachableLearnset = sGholdengoTeachableLearnset, }, #endif //P_FAMILY_GIMMIGHOUL @@ -4604,7 +5336,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 135, - .types = { TYPE_DARK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), .catchRate = 6, .expYield = 285, .evYield_SpDefense = 3, @@ -4612,10 +5344,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Wo-Chien"), .cryId = CRY_WO_CHIEN, .natDexNum = NATIONAL_DEX_WO_CHIEN, @@ -4631,17 +5362,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WoChien, 64, 64), + .frontPic = gMonFrontPic_WoChien, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WoChien, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WoChien, 64, 64), + .backPic = gMonBackPic_WoChien, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WoChien), - ICON(WoChien, 5), - //.footprint = gMonFootprint_WoChien, - LEARNSETS(WoChien), + .palette = gMonPalette_WoChien, + .shinyPalette = gMonShinyPalette_WoChien, + .iconSprite = gMonIcon_WoChien, + .iconPalIndex = 1, + //FOOTPRINT(WoChien) + .isLegendary = TRUE, + .levelUpLearnset = sWoChienLevelUpLearnset, + .teachableLearnset = sWoChienTeachableLearnset, }, #endif //P_FAMILY_WO_CHIEN @@ -4654,7 +5391,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 90, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_ICE }, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), .catchRate = 6, .expYield = 285, .evYield_Speed = 3, @@ -4662,10 +5399,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Chien-Pao"), .cryId = CRY_CHIEN_PAO, .natDexNum = NATIONAL_DEX_CHIEN_PAO, @@ -4681,17 +5417,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ChienPao, 64, 64), - .frontPicYOffset = 2, + .frontPic = gMonFrontPic_ChienPao, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_ChienPao, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ChienPao, 64, 64), + .backPic = gMonBackPic_ChienPao, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ChienPao), - ICON(ChienPao, 0), - //.footprint = gMonFootprint_ChienPao, - LEARNSETS(ChienPao), + .palette = gMonPalette_ChienPao, + .shinyPalette = gMonShinyPalette_ChienPao, + .iconSprite = gMonIcon_ChienPao, + .iconPalIndex = 0, + //FOOTPRINT(ChienPao) + .isLegendary = TRUE, + .levelUpLearnset = sChienPaoLevelUpLearnset, + .teachableLearnset = sChienPaoTeachableLearnset, }, #endif //P_FAMILY_CHIEN_PAO @@ -4704,7 +5446,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DARK, TYPE_GROUND), .catchRate = 6, .expYield = 285, .evYield_Defense = 3, @@ -4712,10 +5454,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Ting-Lu"), .cryId = CRY_TING_LU, .natDexNum = NATIONAL_DEX_TING_LU, @@ -4731,17 +5472,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TingLu, 64, 64), + .frontPic = gMonFrontPic_TingLu, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TingLu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TingLu, 64, 64), + .backPic = gMonBackPic_TingLu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TingLu), - ICON(TingLu, 0), - //.footprint = gMonFootprint_TingLu, - LEARNSETS(TingLu), + .palette = gMonPalette_TingLu, + .shinyPalette = gMonShinyPalette_TingLu, + .iconSprite = gMonIcon_TingLu, + .iconPalIndex = 0, + //FOOTPRINT(TingLu) + .isLegendary = TRUE, + .levelUpLearnset = sTingLuLevelUpLearnset, + .teachableLearnset = sTingLuTeachableLearnset, }, #endif //P_FAMILY_TING_LU @@ -4754,7 +5501,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 100, .baseSpAttack = 135, .baseSpDefense = 120, - .types = { TYPE_DARK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), .catchRate = 6, .expYield = 285, .evYield_SpAttack = 3, @@ -4762,10 +5509,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Chi-Yu"), .cryId = CRY_CHI_YU, .natDexNum = NATIONAL_DEX_CHI_YU, @@ -4781,18 +5527,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ChiYu, 64, 64), + .frontPic = gMonFrontPic_ChiYu, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_ChiYu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 9, - BACK_PIC(ChiYu, 64, 64), - .backPicYOffset = 0, + .enemyMonElevation = 15, + .backPic = gMonBackPic_ChiYu, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ChiYu), - ICON(ChiYu, 0), - //.footprint = gMonFootprint_ChiYu, - LEARNSETS(ChiYu), + .palette = gMonPalette_ChiYu, + .shinyPalette = gMonShinyPalette_ChiYu, + .iconSprite = gMonIcon_ChiYu, + .iconPalIndex = 0, + //FOOTPRINT(ChiYu) + .isLegendary = TRUE, + .levelUpLearnset = sChiYuLevelUpLearnset, + .teachableLearnset = sChiYuTeachableLearnset, }, #endif //P_FAMILY_CHI_YU @@ -4805,7 +5557,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 119, .baseSpAttack = 55, .baseSpDefense = 101, - .types = { TYPE_DRAGON, TYPE_DARK }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_DARK), .catchRate = 10, .expYield = 295, .evYield_Attack = 3, @@ -4813,10 +5565,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("RoarngMoon"), .cryId = CRY_ROARING_MOON, .natDexNum = NATIONAL_DEX_ROARING_MOON, @@ -4832,18 +5583,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RoaringMoon, 64, 64), + .frontPic = gMonFrontPic_RoaringMoon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RoaringMoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(RoaringMoon, 64, 64), + .backPic = gMonBackPic_RoaringMoon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RoaringMoon), - ICON(RoaringMoon, 3), - //.footprint = gMonFootprint_RoaringMoon, - LEARNSETS(RoaringMoon), + .palette = gMonPalette_RoaringMoon, + .shinyPalette = gMonShinyPalette_RoaringMoon, + .iconSprite = gMonIcon_RoaringMoon, + .iconPalIndex = 0, + //FOOTPRINT(RoaringMoon) + .isParadoxForm = TRUE, + .levelUpLearnset = sRoaringMoonLevelUpLearnset, + .teachableLearnset = sRoaringMoonTeachableLearnset, }, #endif //P_FAMILY_ROARING_MOON @@ -4856,7 +5613,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 116, .baseSpAttack = 120, .baseSpDefense = 60, - .types = { TYPE_FAIRY, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FIGHTING), .catchRate = 10, .expYield = 295, .evYield_Attack = 3, @@ -4864,10 +5621,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("IronVliant"), .cryId = CRY_IRON_VALIANT, .natDexNum = NATIONAL_DEX_IRON_VALIANT, @@ -4882,17 +5638,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronValiant, 64, 64), + .frontPic = gMonFrontPic_IronValiant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronValiant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronValiant, 64, 64), + .backPic = gMonBackPic_IronValiant, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronValiant), - ICON(IronValiant, 4), - //.footprint = gMonFootprint_IronValiant, - LEARNSETS(IronValiant), + .palette = gMonPalette_IronValiant, + .shinyPalette = gMonShinyPalette_IronValiant, + .iconSprite = gMonIcon_IronValiant, + .iconPalIndex = 1, + //FOOTPRINT(IronValiant) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronValiantLevelUpLearnset, + .teachableLearnset = sIronValiantTeachableLearnset, }, #endif //P_FAMILY_IRON_VALIANT @@ -4905,7 +5667,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 85, .baseSpDefense = 100, - .types = { TYPE_FIGHTING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DRAGON), .catchRate = 3, .expYield = 335, .evYield_Attack = 3, @@ -4913,11 +5675,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, - .isParadoxForm = TRUE, .speciesName = _("Koraidon"), .cryId = CRY_KORAIDON, .natDexNum = NATIONAL_DEX_KORAIDON, @@ -4933,17 +5693,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Koraidon, 64, 64), + .frontPic = gMonFrontPic_Koraidon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Koraidon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Koraidon, 64, 64), + .backPic = gMonBackPic_Koraidon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Koraidon), - ICON(Koraidon, 0), - //.footprint = gMonFootprint_Koraidon, - LEARNSETS(Koraidon), + .palette = gMonPalette_Koraidon, + .shinyPalette = gMonShinyPalette_Koraidon, + .iconSprite = gMonIcon_Koraidon, + .iconPalIndex = 0, + //FOOTPRINT(Koraidon) + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .levelUpLearnset = sKoraidonLevelUpLearnset, + .teachableLearnset = sKoraidonTeachableLearnset, }, #endif //P_FAMILY_KORAIDON @@ -4956,7 +5723,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 115, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), .catchRate = 3, .expYield = 335, .evYield_SpAttack = 3, @@ -4964,11 +5731,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, - .isParadoxForm = TRUE, .speciesName = _("Miraidon"), .cryId = CRY_MIRAIDON, .natDexNum = NATIONAL_DEX_MIRAIDON, @@ -4984,17 +5749,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Miraidon, 64, 64), + .frontPic = gMonFrontPic_Miraidon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Miraidon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Miraidon, 64, 64), + .backPic = gMonBackPic_Miraidon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Miraidon), - ICON(Miraidon, 2), - //.footprint = gMonFootprint_Miraidon, - LEARNSETS(Miraidon), + .palette = gMonPalette_Miraidon, + .shinyPalette = gMonShinyPalette_Miraidon, + .iconSprite = gMonIcon_Miraidon, + .iconPalIndex = 2, + //FOOTPRINT(Miraidon) + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .levelUpLearnset = sMiraidonLevelUpLearnset, + .teachableLearnset = sMiraidonTeachableLearnset, }, #endif //P_FAMILY_MIRAIDON @@ -5007,7 +5779,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 109, .baseSpAttack = 125, .baseSpDefense = 83, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 5, .expYield = 295, .evYield_SpAttack = 3, @@ -5015,10 +5787,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("WalkngWake"), .cryId = CRY_WALKING_WAKE, .natDexNum = NATIONAL_DEX_WALKING_WAKE, @@ -5026,22 +5797,30 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 35, .weight = 2800, .description = COMPOUND_STRING( - "Ecology under research."), + "This ferocious creature is shrouded in\n" + "mystery. It's named after an aquatic\n" + "monster mentioned in an old journal."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WalkingWake, 64, 64), + .frontPic = gMonFrontPic_WalkingWake, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WalkingWake, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WalkingWake, 64, 64), + .backPic = gMonBackPic_WalkingWake, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WalkingWake), - ICON(WalkingWake, 2), - //.footprint = gMonFootprint_WalkingWake, - LEARNSETS(WalkingWake), + .palette = gMonPalette_WalkingWake, + .shinyPalette = gMonShinyPalette_WalkingWake, + .iconSprite = gMonIcon_WalkingWake, + .iconPalIndex = 2, + //FOOTPRINT(WalkingWake) + .isParadoxForm = TRUE, + .levelUpLearnset = sWalkingWakeLevelUpLearnset, + .teachableLearnset = sWalkingWakeTeachableLearnset, }, #endif //P_FAMILY_WALKING_WAKE @@ -5054,7 +5833,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 104, .baseSpAttack = 70, .baseSpDefense = 108, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), .catchRate = 5, .expYield = 295, .evYield_Attack = 3, @@ -5062,10 +5841,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isParadoxForm = TRUE, .speciesName = _("IronLeaves"), .cryId = CRY_IRON_LEAVES, .natDexNum = NATIONAL_DEX_IRON_LEAVES, @@ -5073,146 +5851,244 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 15, .weight = 1250, .description = COMPOUND_STRING( - "Ecology under analysis."), + "According to the few eyewitness accounts\n" + "that exist, it used its shining blades\n" + "to julienne large trees and boulders."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronLeaves, 64, 64), + .frontPic = gMonFrontPic_IronLeaves, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronLeaves, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronLeaves, 64, 64), + .backPic = gMonBackPic_IronLeaves, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronLeaves), - ICON(IronLeaves, 1), - //.footprint = gMonFootprint_IronLeaves, - LEARNSETS(IronLeaves), + .palette = gMonPalette_IronLeaves, + .shinyPalette = gMonShinyPalette_IronLeaves, + .iconSprite = gMonIcon_IronLeaves, + .iconPalIndex = 1, + //FOOTPRINT(IronLeaves) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronLeavesLevelUpLearnset, + .teachableLearnset = sIronLeavesTeachableLearnset, }, #endif //P_FAMILY_IRON_LEAVES #if P_FAMILY_POLTCHAGEIST -#define POLTCHAGEIST_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 74, \ - .baseSpDefense = 54, \ - .types = { TYPE_GRASS, TYPE_GHOST }, \ - .catchRate = 120, \ - .expYield = 62, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Ptchageist"), \ - .cryId = CRY_POLTCHAGEIST, \ - .natDexNum = NATIONAL_DEX_POLTCHAGEIST, \ - .categoryName = _("Matcha"), \ - .height = 1, \ - .weight = 11, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Poltchageist, 64, 64), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Poltchageist, \ - .enemyMonElevation = 10, \ - BACK_PIC(Poltchageist, 64, 64), \ - .backPicYOffset = 5, \ - PALETTES(Poltchageist), \ - ICON(Poltchageist, 4), \ - LEARNSETS(Poltchageist) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Poltchageist, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = { - POLTCHAGEIST_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Ptchageist"), + .cryId = CRY_POLTCHAGEIST, + .natDexNum = NATIONAL_DEX_POLTCHAGEIST, + .categoryName = _("Matcha"), + .height = 1, + .weight = 11, .description = COMPOUND_STRING( "Supposedly, the regrets of a tea\n" "ceremony master who died before\n" "perfecting his craft lingered in some\n" "matcha and became a Pokémon."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Poltchageist, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Poltchageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Poltchageist, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Poltchageist, + .shinyPalette = gMonShinyPalette_Poltchageist, + .iconSprite = gMonIcon_Poltchageist, + .iconPalIndex = 1, + //FOOTPRINT(Poltchageist) + .levelUpLearnset = sPoltchageistLevelUpLearnset, + .teachableLearnset = sPoltchageistTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_UNREMARKABLE_TEACUP, SPECIES_SINISTCHA_UNREMARKABLE}), }, [SPECIES_POLTCHAGEIST_ARTISAN] = { - POLTCHAGEIST_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Ptchageist"), + .cryId = CRY_POLTCHAGEIST, + .natDexNum = NATIONAL_DEX_POLTCHAGEIST, + .categoryName = _("Matcha"), + .height = 1, + .weight = 11, .description = COMPOUND_STRING( "It has taken up residence in a very\n" "expensive tea caddy. It takes an\n" "expert to distinguish the expensive\n" "tea caddies from the cheap ones."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Poltchageist, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Poltchageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Poltchageist, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Poltchageist, + .shinyPalette = gMonShinyPalette_Poltchageist, + .iconSprite = gMonIcon_Poltchageist, + .iconPalIndex = 1, + //FOOTPRINT(Poltchageist) + .levelUpLearnset = sPoltchageistLevelUpLearnset, + .teachableLearnset = sPoltchageistTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MASTERPIECE_TEACUP, SPECIES_SINISTCHA_MASTERPIECE}), }, -#define SINISTCHA_MISC_INFO \ - .baseHP = 71, \ - .baseAttack = 60, \ - .baseDefense = 106, \ - .baseSpeed = 70, \ - .baseSpAttack = 121, \ - .baseSpDefense = 80, \ - .types = { TYPE_GRASS, TYPE_GHOST }, \ - .catchRate = 60, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sinistcha"), \ - .cryId = CRY_SINISTCHA, \ - .natDexNum = NATIONAL_DEX_SINISTCHA, \ - .categoryName = _("Matcha"), \ - .height = 2, \ - .weight = 22, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Sinistcha, 64, 64), \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Sinistcha, \ - .enemyMonElevation = 10, \ - BACK_PIC(Sinistcha, 64, 64), \ - .backPicYOffset = 13, \ - PALETTES(Sinistcha), \ - ICON(Sinistcha, 1), \ - LEARNSETS(Sinistcha) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Sinistcha, - [SPECIES_SINISTCHA_UNREMARKABLE] = { - SINISTCHA_MISC_INFO, + .baseHP = 71, + .baseAttack = 60, + .baseDefense = 106, + .baseSpeed = 70, + .baseSpAttack = 121, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sinistcha"), + .cryId = CRY_SINISTCHA, + .natDexNum = NATIONAL_DEX_SINISTCHA, + .categoryName = _("Matcha"), + .height = 2, + .weight = 22, .description = COMPOUND_STRING( "It pretends to be tea, trying to fool\n" "people into drinking it so it can\n" "drain their life-force. Its ruse is\n" "generally unsuccessful."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistcha, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sinistcha, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistcha, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistcha, + .shinyPalette = gMonShinyPalette_Sinistcha, + .iconSprite = gMonIcon_Sinistcha, + .iconPalIndex = 1, + //FOOTPRINT(Sinistcha) + .levelUpLearnset = sSinistchaLevelUpLearnset, + .teachableLearnset = sSinistchaTeachableLearnset, }, [SPECIES_SINISTCHA_MASTERPIECE] = { - SINISTCHA_MISC_INFO, + .baseHP = 71, + .baseAttack = 60, + .baseDefense = 106, + .baseSpeed = 70, + .baseSpAttack = 121, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sinistcha"), + .cryId = CRY_SINISTCHA, + .natDexNum = NATIONAL_DEX_SINISTCHA, + .categoryName = _("Matcha"), + .height = 2, + .weight = 22, .description = COMPOUND_STRING( "The more stirring it does with the\n" "tea whisk on its head, the more\n" "energy it builds up. It does this to\n" "prepare for battle."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistcha, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sinistcha, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistcha, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistcha, + .shinyPalette = gMonShinyPalette_Sinistcha, + .iconSprite = gMonIcon_Sinistcha, + .iconPalIndex = 1, + //FOOTPRINT(Sinistcha) + .levelUpLearnset = sSinistchaLevelUpLearnset, + .teachableLearnset = sSinistchaTeachableLearnset, }, #endif //P_FAMILY_POLTCHAGEIST @@ -5225,7 +6101,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 80, .baseSpAttack = 58, .baseSpDefense = 86, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 3, .expYield = 278, .evYield_Attack = 3, @@ -5233,7 +6109,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Okidogi"), @@ -5251,18 +6127,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Okidogi, 64, 64), + .frontPic = gMonFrontPic_Okidogi, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Okidogi, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Okidogi, 64, 64), + .backPic = gMonBackPic_Okidogi, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Okidogi), - ICON(Okidogi, 1), - //.footprint = gMonFootprint_Okidogi, - LEARNSETS(Okidogi), + .palette = gMonPalette_Okidogi, + .shinyPalette = gMonShinyPalette_Okidogi, + .iconSprite = gMonIcon_Okidogi, + .iconPalIndex = 1, + //FOOTPRINT(Okidogi) .isLegendary = TRUE, + .levelUpLearnset = sOkidogiLevelUpLearnset, + .teachableLearnset = sOkidogiTeachableLearnset, }, #endif //P_FAMILY_OKIDOGI @@ -5275,7 +6156,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 106, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), .catchRate = 3, .expYield = 278, .evYield_SpAttack = 3, @@ -5283,10 +6164,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Munkidori"), .cryId = CRY_MUNKIDORI, .natDexNum = NATIONAL_DEX_MUNKIDORI, @@ -5302,17 +6182,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munkidori, 64, 64), + .frontPic = gMonFrontPic_Munkidori, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Munkidori, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Munkidori, 64, 64), + .backPic = gMonBackPic_Munkidori, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Munkidori), - ICON(Munkidori, 0), - //.footprint = gMonFootprint_Munkidori, - LEARNSETS(Munkidori), + .palette = gMonPalette_Munkidori, + .shinyPalette = gMonShinyPalette_Munkidori, + .iconSprite = gMonIcon_Munkidori, + .iconPalIndex = 0, + //FOOTPRINT(Munkidori) + .isLegendary = TRUE, + .levelUpLearnset = sMunkidoriLevelUpLearnset, + .teachableLearnset = sMunkidoriTeachableLearnset, }, #endif //P_FAMILY_MUNKIDORI @@ -5325,7 +6211,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 99, .baseSpAttack = 70, .baseSpDefense = 125, - .types = { TYPE_POISON, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_POISON, TYPE_FAIRY), .catchRate = 3, .expYield = 278, .evYield_SpDefense = 3, @@ -5333,10 +6219,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Fezndipiti"), .cryId = CRY_FEZANDIPITI, .natDexNum = NATIONAL_DEX_FEZANDIPITI, @@ -5352,22 +6237,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fezandipiti, 64, 64), + .frontPic = gMonFrontPic_Fezandipiti, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Fezandipiti, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fezandipiti, 64, 64), + .backPic = gMonBackPic_Fezandipiti, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fezandipiti), - ICON(Fezandipiti, 0), - //.footprint = gMonFootprint_Fezandipiti, - LEARNSETS(Fezandipiti), + .palette = gMonPalette_Fezandipiti, + .shinyPalette = gMonShinyPalette_Fezandipiti, + .iconSprite = gMonIcon_Fezandipiti, + .iconPalIndex = 0, + //FOOTPRINT(Fezandipiti) + .isLegendary = TRUE, + .levelUpLearnset = sFezandipitiLevelUpLearnset, + .teachableLearnset = sFezandipitiTeachableLearnset, }, #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON -#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \ +#define OGERPON_SPECIES_INFO(Form, type, ability, color, iconpalette) \ { \ .baseHP = 80, \ .baseAttack = 120, \ @@ -5375,7 +6266,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, \ .baseSpAttack = 60, \ .baseSpDefense = 96, \ - .types = { TYPE_GRASS, type }, \ + .types = MON_TYPES(TYPE_GRASS, type), \ .catchRate = 5, \ .expYield = 275, \ .evYield_Attack = 3, \ @@ -5383,7 +6274,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 10, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ .abilities = { ability, ABILITY_NONE }, \ .bodyColor = color, \ .speciesName = _("Ogerpon"), \ @@ -5397,37 +6288,482 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Ogerpon##Form, 64, 64), \ + .frontPic = gMonFrontPic_Ogerpon##Form, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Ogerpon, \ - BACK_PIC(Ogerpon##Form, 64, 64), \ + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ + .backPic = gMonBackPic_Ogerpon##Form, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 16, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ .palette = gMonPalette_Ogerpon##Form, \ - ICON(OgerponTealMask, 1), \ - LEARNSETS(Ogerpon), \ + .shinyPalette = gMonShinyPalette_Ogerpon##Form, \ + .iconSprite = gMonIcon_Ogerpon##Form, \ + .iconPalIndex = iconpalette, \ + /*FOOTPRINT(Ogerpon)*/ \ + .levelUpLearnset = sOgerponLevelUpLearnset, \ + .teachableLearnset = sOgerponTeachableLearnset, \ .formSpeciesIdTable = sOgerponFormSpeciesIdTable, \ .formChangeTable = sOgerponFormChangeTable, \ .isLegendary = TRUE, \ } - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.shinyPalette = gMonShinyPalette_OgerponTealMask, - //ICON(Ogerpon##Form##, 1), - //.footprint = gMonFootprint_Ogerpon, - [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, FALSE), - [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, FALSE), - [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, FALSE), - [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, FALSE), + [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1), + [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, 0), + [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, 0), + [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, 0), #if P_TERA_FORMS - [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, TRUE), - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, TRUE), - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, TRUE), - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, TRUE), + [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, 1), + [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, 0), + [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, 0), + [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, 0), #endif //P_TERA_FORMS #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + [SPECIES_GOUGING_FIRE] = + { + .baseHP = 105, + .baseAttack = 115, + .baseDefense = 121, + .baseSpeed = 91, + .baseSpAttack = 65, + .baseSpDefense = 93, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), + .catchRate = 10, + .expYield = 295, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("GouginFire"), + .cryId = CRY_GOUGING_FIRE, + .natDexNum = NATIONAL_DEX_GOUGING_FIRE, + .categoryName = _("Paradox"), + .height = 35, + .weight = 5900, + .description = COMPOUND_STRING( + "There are scant few reports of\n" + "this creature being sighted.\n" + "One short video shows it rampaging,\n" + "and spouting pillars of flame."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + .frontPic = gMonFrontPic_GougingFire, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_GougingFire, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GougingFire, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GougingFire, + .shinyPalette = gMonShinyPalette_GougingFire, + .iconSprite = gMonIcon_GougingFire, + .iconPalIndex = 5, + //FOOTPRINT(GougingFire) + .isParadoxForm = TRUE, + .levelUpLearnset = sGougingFireLevelUpLearnset, + .teachableLearnset = sGougingFireTeachableLearnset, + }, +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + [SPECIES_RAGING_BOLT] = + { + .baseHP = 125, + .baseAttack = 73, + .baseDefense = 91, + .baseSpeed = 75, + .baseSpAttack = 137, + .baseSpDefense = 89, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), + .catchRate = 10, + .expYield = 295, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("RagingBolt"), + .cryId = CRY_RAGING_BOLT, + .natDexNum = NATIONAL_DEX_RAGING_BOLT, + .categoryName = _("Paradox"), + .height = 52, + .weight = 4800, + .description = COMPOUND_STRING( + "It bears resemblance to a Pokémon\n" + "that became a hot topic for a short\n" + "while after a paranomal magazine\n" + "touted it as Raikou's ancestor."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + .frontPic = gMonFrontPic_RagingBolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RagingBolt, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_RagingBolt, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_RagingBolt, + .shinyPalette = gMonShinyPalette_RagingBolt, + .iconSprite = gMonIcon_RagingBolt, + .iconPalIndex = 2, + //FOOTPRINT(RagingBolt) + .isParadoxForm = TRUE, + .levelUpLearnset = sRagingBoltLevelUpLearnset, + .teachableLearnset = sRagingBoltTeachableLearnset, + }, +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + [SPECIES_IRON_BOULDER] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 124, + .baseSpAttack = 68, + .baseSpDefense = 108, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), + .catchRate = 10, + .expYield = 295, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("IronBouldr"), + .cryId = CRY_IRON_BOULDER, + .natDexNum = NATIONAL_DEX_IRON_BOULDER, + .categoryName = _("Paradox"), + .height = 15, + .weight = 1625, + .description = COMPOUND_STRING( + "It was named after a mysterious\n" + "object recorded in an old book.\n" + "Its body seems to be metallic."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 336, + .trainerOffset = 4, + .frontPic = gMonFrontPic_IronBoulder, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_IronBoulder, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_IronBoulder, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_IronBoulder, + .shinyPalette = gMonShinyPalette_IronBoulder, + .iconSprite = gMonIcon_IronBoulder, + .iconPalIndex = 5, + //FOOTPRINT(IronBoulder) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronBoulderLevelUpLearnset, + .teachableLearnset = sIronBoulderTeachableLearnset, + }, +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + [SPECIES_IRON_CROWN] = + { + .baseHP = 90, + .baseAttack = 72, + .baseDefense = 100, + .baseSpeed = 98, + .baseSpAttack = 122, + .baseSpDefense = 108, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 10, + .expYield = 295, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Iron Crown"), + .cryId = CRY_IRON_CROWN, + .natDexNum = NATIONAL_DEX_IRON_CROWN, + .categoryName = _("Paradox"), + .height = 16, + .weight = 1560, + .description = COMPOUND_STRING( + "It resembles a mysterious object\n" + "introduced in a paranormal magazine\n" + "as a cutting-edge weapon\n" + "shaped like Cobalion."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_IronCrown, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronCrown, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_IronCrown, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_IronCrown, + .shinyPalette = gMonShinyPalette_IronCrown, + .iconSprite = gMonIcon_IronCrown, + .iconPalIndex = 3, + //FOOTPRINT(IronCrown) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronCrownLevelUpLearnset, + .teachableLearnset = sIronCrownTeachableLearnset, + }, +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS + [SPECIES_TERAPAGOS_NORMAL] = + { + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 85, + .baseSpeed = 60, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 90, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERA_SHIFT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 2, + .weight = 65, + .description = COMPOUND_STRING( + "Terapagos protects itself using its\n" + "power to transform energy into hard\n" + "crystals. This Pokémon is the source\n" + "of the Terastal phenomenon."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosNormal, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosNormal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosNormal, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosNormal, + //.shinyPalette = gMonShinyPalette_TerapagosNormal, + .iconSprite = gMonIcon_TerapagosNormal, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, + + [SPECIES_TERAPAGOS_TERASTAL] = + { + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 105, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 120, + .evYield_Defense = 2, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERA_SHELL, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 3, + .weight = 160, + .description = COMPOUND_STRING( + "The shell is made of crystallized\n" + "Terastal energy. When struck by a move,\n" + "this shell absorbs the move's energy\n" + "and transfers it to Terapagos."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosTerastal, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosTerastal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosTerastal, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosTerastal, + //.shinyPalette = gMonShinyPalette_TerapagosTerastal, + .iconSprite = gMonIcon_TerapagosTerastal, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, + + [SPECIES_TERAPAGOS_STELLAR] = + { + .baseHP = 160, + .baseAttack = 105, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 130, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 140, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAFORM_ZERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 17, + .weight = 770, + .description = COMPOUND_STRING( + "An old expedition journal describes the\n" + "sight of this Pokémon buried in the,\n" + "depths of the earth as resembling a\n" + "planet floating in space."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosStellar, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosStellar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosStellar, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosStellar, + //.shinyPalette = gMonShinyPalette_TerapagosStellar, + .iconSprite = gMonIcon_TerapagosStellar, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + [SPECIES_PECHARUNT] = + { + .baseHP = 88, + .baseAttack = 88, + .baseDefense = 160, + .baseSpeed = 88, + .baseSpAttack = 88, + .baseSpDefense = 88, + .types = MON_TYPES(TYPE_POISON, TYPE_GHOST), + .catchRate = 3, + .expYield = 300, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POISON_PUPPETEER, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Pecharunt"), + .cryId = CRY_PECHARUNT, + .natDexNum = NATIONAL_DEX_PECHARUNT, + .categoryName = _("Subjugation"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "It feeds others toxic mochi that\n" + "draw out desires and capabilities.\n" + "Those who eat the mochi fall under\n" + "Pecharunt's control, chained to its will."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Pecharunt, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Pecharunt, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Pecharunt, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Pecharunt, + .shinyPalette = gMonShinyPalette_Pecharunt, + .iconSprite = gMonIcon_Pecharunt, + .iconPalIndex = 0, + //FOOTPRINT(Pecharunt) + .isMythical = TRUE, + .levelUpLearnset = sPecharuntLevelUpLearnset, + .teachableLearnset = sPecharuntTeachableLearnset, + }, +#endif //P_FAMILY_PECHARUNT + #ifdef __INTELLISENSE__ }; -#endif \ No newline at end of file +#endif diff --git a/src/data/pokemon/species_info/shared_dex_text.h b/src/data/pokemon/species_info/shared_dex_text.h new file mode 100644 index 000000000..0e4805153 --- /dev/null +++ b/src/data/pokemon/species_info/shared_dex_text.h @@ -0,0 +1,282 @@ +// Gen 1 families +const u8 gRaticateAlolanPokedexText[] = _( + "It forms a group of Rattata, which it \n" + "assumes command of. Each group\n" + "has its own territory, and disputes\n" + "over food happen often."); + +const u8 gPichuPokedexText[] = _( + "It is still inept at retaining electricity.\n" + "When it is startled, it discharges power\n" + "accidentally. It gets better at holding\n" + "power as it grows older."); + +const u8 gPikachuPokedexText[] = _( + "It stores electricity in the electric sacs\n" + "on its cheeks. When it releases pent-up\n" + "energy in a burst, the electric power is\n" + "equal to a lightning bolt."); + +const u8 gMarowakAlolanPokedexText[] = _( + "The cursed flames that light up the bone\n" + "carried by this Pokémon are said\n" + "to cause both mental and physical\n" + "pain that will never fade."); + +const u8 gEeveePokedexText[] = _( + "An Eevee has an unstable genetic makeup\n" + "that suddenly mutates due to its\n" + "environment. Radiation from various\n" + "Stones causes this Pokémon to evolve."); + +// Gen 2 families +const u8 gUnownPokedexText[] = _( + "This Pokémon is shaped like ancient text\n" + "characters. Although research is ongoing,\n" + "it is a mystery as to which came first,\n" + "the ancient writings or the various Unown."); + +// Gen 3 families +const u8 gDeoxysNormalPokedexText[] = _( + "Deoxys emerged from a virus that came\n" + "from space. It is highly intelligent and\n" + "can shoot lasers from the crystalline\n" + "organ on its chest."); + +// Gen 4 families +const u8 gMothimPokedexText[] = _( + "It does not keep a nest. While it\n" + "loves floral honey, it won't gather\n" + "any itself. Instead, it plots to steal\n" + "honey collected by Combee."); + +const u8 gArceusPokedexText[] = _( + "It is told in mythology that this Pokémon\n" + "emerged from an egg and shaped all there\n" + "is in this world, before the universe\n" + "even existed."); + +// Gen 5 families +const u8 gGenesectPokedexText[] = _( + "Over 300 million years ago, it was\n" + "feared as the strongest of hunters.\n" + "Team Plasma altered it and attached\n" + "a cannon to its back."); + +// Gen 6 families +const u8 gGreninjaPokedexText[] = _( + "It appears and vanishes with a ninja's\n" + "grace. It toys with its enemies using swift\n" + "movements, while slicing them with throwing\n" + "stars made of compressed water."); + +const u8 gScatterbugPokedexText[] = _( + "When under attack from bird Pokémon,\n" + "it spews a poisonous black powder that\n" + "causes paralysis on contact. Scatterbug\n" + "can live in any region or climate."); + +const u8 gSpewpaPokedexText[] = _( + "It lives hidden within thicket shadows.\n" + "When predators attack, it quickly bristles\n" + "the fur covering its body in an effort to\n" + "threaten them."); + +const u8 gFurfrouPokedexText[] = _( + "Trimming its fluffy fur not only makes\n" + "it more elegant but also increases the\n" + "swiftness of its movements. These\n" + "Pokémon were the guardians of kings."); + +const u8 gXerneasPokedexText[] = _( + "Legends say that when the horns on\n" + "its head shine in seven colors, it is\n" + "sharing everlasting life. It slept for a\n" + "thousand years in the form of a tree"); + +const u8 gZygarde50PokedexText[] = _( + "It's said to be monitoring the ecosystem\n" + "from deep in the caves where it lives.\n" + "There are rumors that even greater power\n" + "lies hidden within its cells."); + +const u8 gZygarde10PokedexText[] = _( + "This is Zygarde when about 10% of\n" + "its pieces have been assembled. It\n" + "leaps at its opponent's chest and\n" + "sinks its sharp fangs into them."); + +// Gen 7 families +const u8 gGumshoosPokedexText[] = _( + "When it finds a trace of its prey, it\n" + "patiently stakes out the location...\n" + "but as it's diurnal, it's always snoozing\n" + "by nightfall."); + +const u8 gVikavoltPokedexText[] = _( + "It concentrates electrical energy within\n" + "its large jaws and uses it to zap its foes.\n" + "It overwhelms bird Pokémon with shocking\n" + "beams of electrical energy."); + +const u8 gRibombeePokedexText[] = _( + "Ribombee rolls up pollen into puffs.\n" + "It makes many different varieties, some\n" + "used as food and others used in battle.\n" + "They are sometimes sold as supplements."); + +const u8 gRockruffPokedexText[] = _( + "This Pokémon has lived with people since\n" + "times long ago. It can sense when its\n" + "Trainer is in the dumps and will stick\n" + "close by its Trainer's side."); + +const u8 gAraquanidPokedexText[] = _( + "Despite what its appearance suggests,\n" + "it cares for others. If it finds vulnerable,\n" + "weak Pokémon, it protectively brings\n" + "them into its water bubble."); + +const u8 gLurantisPokedexText[] = _( + "It requires a lot of effort to maintain\n" + "Lurantis's vivid coloring, but some\n" + "collectors enjoy this work and treat it\n" + "as their hobby."); + +const u8 gSalazzlePokedexText[] = _( + "For some reason, only females have\n" + "been found. It creates a reverse harem of\n" + "male Salandit to live with. Its poisonous\n" + "gas is filled with pheromones."); + +const u8 gSilvallyNormalPokedexText[] = _( + "Its trust in its partner awakens it.\n" + "This Pokémon is capable of changing its\n" + "type by equipping special memories, a\n" + "trait that is well displayed in battle."); + +const u8 gSilvallyMemoryPokedexText[] = _( + "Upon awakening, its RKS System is\n" + "activated. By employing specific\n" + "memories, this Pokémon can adapt its\n" + "type to confound its enemies."); + +const u8 gMiniorMeteorPokedexText[] = _( + "Originally making its home in the ozone\n" + "layer, it hurtles to the ground when the\n" + "shell encasing its body grows too heavy.\n" + "It was born from mutated nanoparticles."); + +const u8 gMiniorCorePokedexText[] = _( + "If its core stays exposed, it will\n" + "soon die off. It's possible that it\n" + "may survive if it's put into a Poké Ball\n" + "quickly enough."); + +const u8 gTogedemaruPokedexText[] = _( + "The spiny fur on its back is normally\n" + "at rest. When this Pokémon becomes\n" + "agitated, its fur stands on end and stabs\n" + "into its attackers."); + +const u8 gMimikyuDisguisedPokedexText[] = _( + "A lonely Pokémon, it hides its terrifying\n" + "appearance beneath an old rag so it can\n" + "get closer to people and other Pokémon.\n" + "Its actual appearance is unknown."); + +const u8 gMimikyuBustedPokedexText[] = _( + "After going to all the effort of\n" + "disguising itself, its neck was\n" + "broken. Whatever is inside is probably\n" + "unharmed, but it's still feeling sad."); + +const u8 gKommoOPokedexText[] = _( + "Its rigid scales function as offense and\n" + "defense. In the past, its scales were\n" + "processed and used to make weapons\n" + "and other valuable commodities."); + +// Gen 8 families +const u8 gAlcremieVanillaCreamPokedexText[] = _( + "If Alcremie is content, the secreted cream\n" + "from its hands becomes sweeter and richer." + "When it trusts a Trainer, it will treat\n" + "them to berries it's decorated with cream."); + +const u8 gAlcremieRubyCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sweet and tart flavor. This is\n" + "because of the way its cells\n" + "spontaneously shifted during evolution."); + +const u8 gAlcremieMatchaCreamPokedexText[] = _( + "The moment it evolved, it took on\n" + "an aromatic flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieMintCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "refreshing flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieLemonCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sour flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieSaltedCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "salty flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieRubySwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "mixed flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieCaramelSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "bitter flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieRainbowSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "complex flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gToxtricityGigantamaxPokedexText[] = _( + "Out of control after its own\n" + "poison penetrated its brain, it tears\n" + "across the land in a rampage,\n" + "contaminating the earth with toxic sweat."); + +// Gen 9 families +const u8 gOgerponTealMaskPokedexText[] = _( + "This Pokémon's type changes based on\n" + "which mask it's wearing. It confounds\n" + "its enemies with nimble movements\n" + "and kicks."); + +const u8 gOgerponWellspringMaskPokedexText[] = _( + "This form excels in both attack\n" + "and defense. It ceaselessly unleashes\n" + "moves like a spring gushes water."); + +const u8 gOgerponHearthflameMaskPokedexText[] = _( + "This form is the most aggressive,\n" + "bombarding enemies with the\n" + "intensity of flames blazing within a hearth."); + +const u8 gOgerponCornerstoneMaskPokedexText[] = _( + "In this form, it draws on the power\n" + "of stone. Its body is rock-solid,\n" + "protecting it from all manner of\n" + "attacks."); \ No newline at end of file diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index c4eaf84c9..a8f660558 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -1,3 +1,113 @@ +// +// DO NOT MODIFY THIS FILE! It is auto-generated from tools/learnset_helpers/teachable.py +// + +// *************************************************** // +// TM/HM moves found in "include/constants/tms_hms.h": // +// - 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_SOLAR_BEAM // +// - 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 // +// *************************************************** // +// Tutor moves found in map scripts: // +// - MOVE_BODY_SLAM // +// - MOVE_COUNTER // +// - MOVE_DEFENSE_CURL // +// - MOVE_DOUBLE_EDGE // +// - MOVE_DREAM_EATER // +// - MOVE_DYNAMIC_PUNCH // +// - MOVE_ENDURE // +// - MOVE_EXPLOSION // +// - MOVE_FIRE_PUNCH // +// - MOVE_FURY_CUTTER // +// - MOVE_ICE_PUNCH // +// - MOVE_ICY_WIND // +// - MOVE_MEGA_KICK // +// - MOVE_MEGA_PUNCH // +// - MOVE_METRONOME // +// - MOVE_MIMIC // +// - MOVE_MUD_SLAP // +// - MOVE_PSYCH_UP // +// - MOVE_ROCK_SLIDE // +// - MOVE_ROLLOUT // +// - MOVE_SEISMIC_TOSS // +// - MOVE_SLEEP_TALK // +// - MOVE_SNORE // +// - MOVE_SOFT_BOILED // +// - MOVE_SUBSTITUTE // +// - MOVE_SWAGGER // +// - MOVE_SWIFT // +// - MOVE_SWORDS_DANCE // +// - MOVE_THUNDER_PUNCH // +// - MOVE_THUNDER_WAVE // +// *************************************************** // +// Near-universal moves found in sUniversalMoves: // +// - MOVE_BIDE // +// - MOVE_FRUSTRATION // +// - MOVE_HIDDEN_POWER // +// - MOVE_MIMIC // +// - MOVE_NATURAL_GIFT // +// - MOVE_RAGE // +// - MOVE_RETURN // +// - MOVE_SECRET_POWER // +// - MOVE_SUBSTITUTE // +// - MOVE_TERA_BLAST // +// *************************************************** // + static const u16 sNoneTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -10,17 +120,13 @@ static const u16 sBulbasaurTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -31,11 +137,9 @@ static const u16 sBulbasaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -48,17 +152,14 @@ static const u16 sIvysaurTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -69,11 +170,9 @@ static const u16 sIvysaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -87,19 +186,15 @@ static const u16 sVenusaurTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -110,11 +205,9 @@ static const u16 sVenusaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -134,17 +227,14 @@ static const u16 sCharmanderTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -158,13 +248,11 @@ static const u16 sCharmanderTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -184,17 +272,14 @@ static const u16 sCharmeleonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -208,13 +293,11 @@ static const u16 sCharmeleonTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -236,20 +319,16 @@ static const u16 sCharizardTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -265,13 +344,11 @@ static const u16 sCharizardTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -290,19 +367,15 @@ static const u16 sSquirtleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -318,13 +391,12 @@ static const u16 sSquirtleTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -338,19 +410,15 @@ static const u16 sWartortleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -366,13 +434,12 @@ static const u16 sWartortleTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -387,9 +454,7 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -397,11 +462,9 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -417,14 +480,12 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -446,18 +507,14 @@ static const u16 sButterfreeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -467,11 +524,9 @@ static const u16 sButterfreeTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -495,16 +550,12 @@ static const u16 sBeedrillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -513,10 +564,8 @@ static const u16 sBeedrillTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -531,25 +580,19 @@ static const u16 sPidgeyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -561,25 +604,19 @@ static const u16 sPidgeottoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -591,26 +628,20 @@ static const u16 sPidgeotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -625,18 +656,15 @@ static const u16 sRattataTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, @@ -649,11 +677,9 @@ static const u16 sRattataTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -667,18 +693,14 @@ static const u16 sRaticateTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -695,11 +717,9 @@ static const u16 sRaticateTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -709,34 +729,64 @@ static const u16 sRaticateTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sRattataAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sRaticateAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BULK_UP, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -749,24 +799,18 @@ static const u16 sSpearowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -778,25 +822,19 @@ static const u16 sFearowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -810,16 +848,12 @@ static const u16 sEkansTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -830,11 +864,10 @@ static const u16 sEkansTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -845,17 +878,13 @@ static const u16 sArbokTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -866,11 +895,10 @@ static const u16 sArbokTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -883,15 +911,12 @@ static const u16 sPichuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -904,13 +929,11 @@ static const u16 sPichuTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -922,72 +945,22 @@ static const u16 sPichuTeachableLearnset[] = { static const u16 sPikachuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SURF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sRaichuTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_STRENGTH, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -1000,13 +973,56 @@ static const u16 sRaichuTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRaichuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -1016,21 +1032,41 @@ static const u16 sRaichuTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sRaichuAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1047,17 +1083,13 @@ static const u16 sSandshrewTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -1069,14 +1101,12 @@ static const u16 sSandshrewTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -1093,18 +1123,14 @@ static const u16 sSandslashTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -1116,14 +1142,12 @@ static const u16 sSandslashTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -1132,31 +1156,81 @@ static const u16 sSandslashTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sSandshrewAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HAIL, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sSandslashAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1171,17 +1245,13 @@ static const u16 sNidoranFTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1196,11 +1266,9 @@ static const u16 sNidoranFTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1213,17 +1281,13 @@ static const u16 sNidorinaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1238,11 +1302,9 @@ static const u16 sNidorinaTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1260,8 +1322,6 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1269,12 +1329,10 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -1300,13 +1358,11 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -1319,17 +1375,13 @@ static const u16 sNidoranMTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1344,11 +1396,9 @@ static const u16 sNidoranMTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1360,17 +1410,13 @@ static const u16 sNidorinoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1385,11 +1431,9 @@ static const u16 sNidorinoTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1406,8 +1450,6 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1415,12 +1457,10 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -1446,13 +1486,11 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -1463,14 +1501,13 @@ static const u16 sNidokingTeachableLearnset[] = { #if P_GEN_2_CROSS_EVOS static const u16 sCleffaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -1478,9 +1515,7 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -1497,7 +1532,6 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1505,8 +1539,8 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -1524,8 +1558,6 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -1534,16 +1566,16 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1561,7 +1593,6 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1569,8 +1600,8 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1588,8 +1619,6 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1599,16 +1628,16 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1626,7 +1655,6 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1634,8 +1662,8 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1650,27 +1678,21 @@ static const u16 sVulpixTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1684,18 +1706,15 @@ static const u16 sNinetalesTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -1703,11 +1722,9 @@ static const u16 sNinetalesTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1715,30 +1732,62 @@ static const u16 sNinetalesTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sVulpixAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_HAIL, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, + MOVE_SAFEGUARD, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sNinetalesAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_CALM_MIND, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1754,17 +1803,13 @@ static const u16 sIgglybuffTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -1780,15 +1825,14 @@ static const u16 sIgglybuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -1798,6 +1842,7 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -1805,8 +1850,6 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -1814,15 +1857,17 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1839,15 +1884,15 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1857,6 +1902,7 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -1864,8 +1910,6 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -1874,15 +1918,17 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1899,15 +1945,15 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1921,14 +1967,10 @@ static const u16 sZubatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -1940,10 +1982,8 @@ static const u16 sZubatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1955,15 +1995,11 @@ static const u16 sGolbatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -1975,10 +2011,8 @@ static const u16 sGolbatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1991,15 +2025,11 @@ static const u16 sCrobatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -2011,10 +2041,8 @@ static const u16 sCrobatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2030,24 +2058,18 @@ static const u16 sOddishTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2060,24 +2082,18 @@ static const u16 sGloomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2090,16 +2106,12 @@ static const u16 sVileplumeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2107,10 +2119,8 @@ static const u16 sVileplumeTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2124,25 +2134,19 @@ static const u16 sBellossomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2161,16 +2165,12 @@ static const u16 sParasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2181,10 +2181,8 @@ static const u16 sParasTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2200,17 +2198,13 @@ static const u16 sParasectTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2221,10 +2215,8 @@ static const u16 sParasectTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2237,15 +2229,11 @@ static const u16 sVenonatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -2254,10 +2242,8 @@ static const u16 sVenonatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2269,16 +2255,12 @@ static const u16 sVenomothTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -2286,11 +2268,10 @@ static const u16 sVenomothTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2306,15 +2287,11 @@ static const u16 sDiglettTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2322,13 +2299,12 @@ static const u16 sDiglettTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -2340,16 +2316,12 @@ static const u16 sDugtrioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2357,37 +2329,67 @@ static const u16 sDugtrioTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sDiglettAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDugtrioAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -2402,14 +2404,10 @@ static const u16 sMeowthTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -2427,14 +2425,13 @@ static const u16 sMeowthTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -2446,16 +2443,12 @@ static const u16 sPersianTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -2473,49 +2466,95 @@ static const u16 sPersianTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sMeowthAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_THUNDERBOLT, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sPersianAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_THUNDERBOLT, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS static const u16 sMeowthGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_IRON_TAIL, @@ -2531,16 +2570,18 @@ static const u16 sMeowthGalarianTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sPerrserkerTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_HYPER_BEAM, @@ -2555,10 +2596,11 @@ static const u16 sPerrserkerTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2579,9 +2621,7 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -2589,11 +2629,12 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -2606,13 +2647,12 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2630,9 +2670,7 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -2641,11 +2679,12 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -2659,13 +2698,12 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2683,17 +2721,13 @@ static const u16 sMankeyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -2712,14 +2746,12 @@ static const u16 sMankeyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -2736,18 +2768,14 @@ static const u16 sPrimeapeTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -2766,14 +2794,12 @@ static const u16 sPrimeapeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -2782,59 +2808,37 @@ static const u16 sPrimeapeTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sAnnihilapeTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, MOVE_DIG, - MOVE_DRAIN_PUNCH, MOVE_EARTHQUAKE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_NIGHT_SHADE, - MOVE_OUTRAGE, MOVE_OVERHEAT, - MOVE_PHANTOM_FORCE, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -2849,18 +2853,14 @@ static const u16 sGrowlitheTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2868,11 +2868,9 @@ static const u16 sGrowlitheTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2886,19 +2884,15 @@ static const u16 sArcanineTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -2907,11 +2901,9 @@ static const u16 sArcanineTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2919,10 +2911,53 @@ static const u16 sArcanineTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sGrowlitheHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sArcanineHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -2936,16 +2971,13 @@ static const u16 sPoliwagTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, + MOVE_FOCUS_PUNCH, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -2956,11 +2988,11 @@ static const u16 sPoliwagTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -2974,17 +3006,13 @@ static const u16 sPoliwhirlTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -3001,13 +3029,13 @@ static const u16 sPoliwhirlTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3022,21 +3050,18 @@ static const u16 sPoliwrathTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, @@ -3052,14 +3077,14 @@ static const u16 sPoliwrathTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3074,18 +3099,14 @@ static const u16 sPolitoedTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -3103,13 +3124,13 @@ static const u16 sPolitoedTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_GEN_2_CROSS_EVOS @@ -3123,8 +3144,6 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -3132,9 +3151,7 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3155,13 +3172,12 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3175,8 +3191,6 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -3184,9 +3198,7 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3207,13 +3219,12 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3227,8 +3238,6 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -3237,9 +3246,7 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3260,13 +3267,12 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3285,16 +3291,12 @@ static const u16 sMachopTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3309,13 +3311,11 @@ static const u16 sMachopTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3332,16 +3332,12 @@ static const u16 sMachokeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3356,13 +3352,11 @@ static const u16 sMachokeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3379,17 +3373,13 @@ static const u16 sMachampTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3404,13 +3394,11 @@ static const u16 sMachampTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3425,14 +3413,10 @@ static const u16 sBellsproutTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -3440,10 +3424,8 @@ static const u16 sBellsproutTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -3456,26 +3438,22 @@ static const u16 sWeepinbellTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3487,15 +3465,11 @@ static const u16 sVictreebelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -3504,11 +3478,10 @@ static const u16 sVictreebelTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3522,18 +3495,14 @@ static const u16 sTentacoolTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_THIEF, @@ -3543,11 +3512,10 @@ static const u16 sTentacoolTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3559,19 +3527,15 @@ static const u16 sTentacruelTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_THIEF, @@ -3581,11 +3545,10 @@ static const u16 sTentacruelTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3602,15 +3565,11 @@ static const u16 sGeodudeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3624,14 +3583,12 @@ static const u16 sGeodudeTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3647,15 +3604,11 @@ static const u16 sGravelerTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3669,14 +3622,12 @@ static const u16 sGravelerTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3692,17 +3643,13 @@ static const u16 sGolemTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3718,14 +3665,12 @@ static const u16 sGolemTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3733,51 +3678,123 @@ static const u16 sGolemTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sGeodudeAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_EARTHQUAKE, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sGravelerAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sGolemAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -3790,15 +3807,11 @@ static const u16 sPonytaTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -3806,10 +3819,8 @@ static const u16 sPonytaTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -3821,16 +3832,12 @@ static const u16 sRapidashTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -3838,12 +3845,11 @@ static const u16 sRapidashTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3852,6 +3858,8 @@ static const u16 sPonytaGalarianTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, @@ -3861,7 +3869,6 @@ static const u16 sPonytaGalarianTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3870,16 +3877,18 @@ static const u16 sRapidashGalarianTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -3900,9 +3909,7 @@ static const u16 sSlowpokeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -3911,27 +3918,24 @@ static const u16 sSlowpokeTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -3953,9 +3957,7 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -3965,16 +3967,15 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -3987,13 +3988,12 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4015,9 +4015,7 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -4025,17 +4023,18 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -4043,20 +4042,22 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, + MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -4086,6 +4087,7 @@ static const u16 sSlowpokeGalarianTeachableLearnset[] = { MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, @@ -4093,7 +4095,6 @@ static const u16 sSlowpokeGalarianTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4120,22 +4121,26 @@ static const u16 sSlowbroGalarianTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REST, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4168,19 +4173,24 @@ static const u16 sSlowkingGalarianTeachableLearnset[] = { MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -4193,15 +4203,12 @@ static const u16 sMagnemiteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -4210,12 +4217,10 @@ static const u16 sMagnemiteTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4226,16 +4231,13 @@ static const u16 sMagnetonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -4244,12 +4246,10 @@ static const u16 sMagnetonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4261,28 +4261,26 @@ static const u16 sMagnezoneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4299,14 +4297,10 @@ static const u16 sFarfetchdTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -4315,12 +4309,10 @@ static const u16 sFarfetchdTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4344,7 +4336,6 @@ static const u16 sFarfetchdGalarianTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -4359,11 +4350,12 @@ static const u16 sSirfetchdTeachableLearnset[] = { MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -4377,13 +4369,10 @@ static const u16 sDoduoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -4391,11 +4380,9 @@ static const u16 sDoduoTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4408,14 +4395,11 @@ static const u16 sDodrioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4425,11 +4409,9 @@ static const u16 sDodrioTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4444,17 +4426,13 @@ static const u16 sSeelTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -4465,10 +4443,8 @@ static const u16 sSeelTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4479,18 +4455,14 @@ static const u16 sDewgongTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -4501,10 +4473,8 @@ static const u16 sDewgongTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4518,15 +4488,12 @@ static const u16 sGrimerTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -4544,12 +4511,11 @@ static const u16 sGrimerTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4564,17 +4530,14 @@ static const u16 sMukTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -4592,45 +4555,98 @@ static const u16 sMukTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sGrimerAlolanTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sMukAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -4643,27 +4659,22 @@ static const u16 sShellderTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -4675,29 +4686,26 @@ static const u16 sCloysterTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -4709,15 +4717,11 @@ static const u16 sGastlyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4735,11 +4739,9 @@ static const u16 sGastlyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4749,15 +4751,11 @@ static const u16 sHaunterTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4775,11 +4773,10 @@ static const u16 sHaunterTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4791,17 +4788,13 @@ static const u16 sGengarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4827,14 +4820,13 @@ static const u16 sGengarTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GASTLY @@ -4846,17 +4838,13 @@ static const u16 sOnixTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4867,14 +4855,12 @@ static const u16 sOnixTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4887,18 +4873,14 @@ static const u16 sSteelixTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4909,14 +4891,12 @@ static const u16 sSteelixTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4932,17 +4912,13 @@ static const u16 sDrowzeeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -4962,13 +4938,12 @@ static const u16 sDrowzeeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4982,8 +4957,6 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -4991,9 +4964,7 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -5013,13 +4984,12 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -5036,17 +5006,13 @@ static const u16 sKrabbyTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -5057,12 +5023,10 @@ static const u16 sKrabbyTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5077,18 +5041,14 @@ static const u16 sKinglerTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -5099,12 +5059,10 @@ static const u16 sKinglerTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5116,15 +5074,11 @@ static const u16 sVoltorbTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TAUNT, MOVE_THIEF, @@ -5132,13 +5086,12 @@ static const u16 sVoltorbTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -5149,16 +5102,12 @@ static const u16 sElectrodeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TAUNT, MOVE_THIEF, @@ -5166,13 +5115,12 @@ static const u16 sElectrodeTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -5181,10 +5129,49 @@ static const u16 sElectrodeTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sVoltorbHisuianTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sElectrodeHisuianTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -5197,16 +5184,12 @@ static const u16 sExeggcuteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -5218,12 +5201,10 @@ static const u16 sExeggcuteTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5232,20 +5213,18 @@ static const u16 sExeggcuteTeachableLearnset[] = { static const u16 sExeggutorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -5253,16 +5232,15 @@ static const u16 sExeggutorTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5270,10 +5248,15 @@ static const u16 sExeggutorTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sExeggutorAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -5281,9 +5264,22 @@ static const u16 sExeggutorAlolanTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_SOLAR_BEAM, + MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -5302,17 +5298,13 @@ static const u16 sCuboneTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5327,14 +5319,13 @@ static const u16 sCuboneTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -5352,18 +5343,14 @@ static const u16 sMarowakTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5378,14 +5365,13 @@ static const u16 sMarowakTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -5393,22 +5379,48 @@ static const u16 sMarowakTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sMarowakAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, - MOVE_THUNDERBOLT, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -5423,14 +5435,10 @@ static const u16 sTyrogueTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5440,13 +5448,12 @@ static const u16 sTyrogueTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, - MOVE_MIMIC, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -5461,17 +5468,14 @@ static const u16 sHitmonleeTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -5482,15 +5486,14 @@ static const u16 sHitmonleeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -5502,17 +5505,14 @@ static const u16 sHitmonchanTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -5525,15 +5525,14 @@ static const u16 sHitmonchanTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -5548,15 +5547,11 @@ static const u16 sHitmontopTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5566,14 +5561,13 @@ static const u16 sHitmontopTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, - MOVE_MIMIC, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -5594,19 +5588,15 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5630,7 +5620,6 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -5638,7 +5627,6 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5658,19 +5646,15 @@ static const u16 sLickilickyTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5682,20 +5666,23 @@ static const u16 sLickilickyTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5712,13 +5699,9 @@ static const u16 sKoffingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -5729,13 +5712,12 @@ static const u16 sKoffingTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -5747,14 +5729,10 @@ static const u16 sWeezingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -5765,13 +5743,12 @@ static const u16 sWeezingTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -5795,11 +5772,12 @@ static const u16 sWeezingGalarianTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -5815,19 +5793,15 @@ static const u16 sRhyhornTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5840,13 +5814,11 @@ static const u16 sRhyhornTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5864,20 +5836,16 @@ static const u16 sRhydonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5897,14 +5865,12 @@ static const u16 sRhydonTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5924,20 +5890,16 @@ static const u16 sRhyperiorTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5946,17 +5908,21 @@ static const u16 sRhyperiorTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5969,22 +5935,19 @@ static const u16 sRhyperiorTeachableLearnset[] = { #if P_GEN_4_CROSS_EVOS static const u16 sHappinyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5992,6 +5955,8 @@ static const u16 sHappinyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -5999,9 +5964,10 @@ static const u16 sHappinyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SOFT_BOILED, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6020,9 +5986,7 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -6032,12 +5996,10 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6045,6 +6007,7 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -6062,7 +6025,6 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -6071,8 +6033,8 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6091,9 +6053,7 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -6102,12 +6062,10 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6115,6 +6073,7 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -6132,7 +6091,6 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -6141,8 +6099,8 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6158,16 +6116,12 @@ static const u16 sTangelaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -6177,11 +6131,9 @@ static const u16 sTangelaTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -6198,17 +6150,13 @@ static const u16 sTangrowthTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -6216,13 +6164,13 @@ static const u16 sTangrowthTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -6244,22 +6192,18 @@ static const u16 sKangaskhanTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -6282,13 +6226,11 @@ static const u16 sKangaskhanTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -6302,15 +6244,11 @@ static const u16 sHorseaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6318,10 +6256,8 @@ static const u16 sHorseaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6333,16 +6269,12 @@ static const u16 sSeadraTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6350,10 +6282,8 @@ static const u16 sSeadraTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6366,16 +6296,12 @@ static const u16 sKingdraTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6384,10 +6310,8 @@ static const u16 sKingdraTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6402,15 +6326,11 @@ static const u16 sGoldeenTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6420,13 +6340,12 @@ static const u16 sGoldeenTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -6436,31 +6355,27 @@ static const u16 sSeakingTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GOLDEEN @@ -6473,9 +6388,7 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6483,8 +6396,6 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -6494,12 +6405,10 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -6513,9 +6422,7 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -6524,8 +6431,6 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SURF, MOVE_THUNDER, @@ -6537,12 +6442,10 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -6560,17 +6463,13 @@ static const u16 sMimeJrTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6586,12 +6485,10 @@ static const u16 sMimeJrTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6607,8 +6504,6 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6616,9 +6511,7 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6643,13 +6536,11 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -6688,10 +6579,8 @@ static const u16 sMrMimeGalarianTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -6727,10 +6616,8 @@ static const u16 sMrRimeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -6742,20 +6629,17 @@ static const u16 sScytherTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -6764,10 +6648,8 @@ static const u16 sScytherTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -6779,21 +6661,18 @@ static const u16 sScizorTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -6803,10 +6682,8 @@ static const u16 sScizorTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -6816,6 +6693,29 @@ static const u16 sScizorTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sKleavorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -6830,9 +6730,7 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6840,8 +6738,6 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_THIEF, @@ -6858,13 +6754,11 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -6879,9 +6773,7 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -6890,8 +6782,6 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_TAUNT, @@ -6910,13 +6800,11 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -6931,17 +6819,14 @@ static const u16 sElekidTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -6955,12 +6840,10 @@ static const u16 sElekidTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -6972,12 +6855,11 @@ static const u16 sElekidTeachableLearnset[] = { static const u16 sElectabuzzTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -6986,11 +6868,10 @@ static const u16 sElectabuzzTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -7005,12 +6886,10 @@ static const u16 sElectabuzzTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -7022,6 +6901,7 @@ static const u16 sElectabuzzTeachableLearnset[] = { static const u16 sElectivireTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, @@ -7029,19 +6909,16 @@ static const u16 sElectivireTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_TAUNT, @@ -7050,14 +6927,19 @@ static const u16 sElectivireTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -7077,16 +6959,12 @@ static const u16 sMagbyTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -7098,12 +6976,10 @@ static const u16 sMagbyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7118,19 +6994,17 @@ static const u16 sMagmarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -7142,12 +7016,10 @@ static const u16 sMagmarTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7163,18 +7035,15 @@ static const u16 sMagmortarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7183,13 +7052,18 @@ static const u16 sMagmortarTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7208,16 +7082,12 @@ static const u16 sPinsirTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -7226,12 +7096,10 @@ static const u16 sPinsirTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -7242,29 +7110,28 @@ static const u16 sPinsirTeachableLearnset[] = { static const u16 sTaurosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -7273,121 +7140,82 @@ static const u16 sTaurosTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_PALDEAN_FORMS static const u16 sTaurosPaldeanCombatBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sTaurosPaldeanBlazeBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, + MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sTaurosPaldeanAquaBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_PALDEAN_FORMS @@ -7407,9 +7235,7 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7417,12 +7243,11 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_THUNDER, @@ -7435,10 +7260,8 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -7451,10 +7274,9 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7463,11 +7285,9 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -7482,10 +7302,8 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -7500,29 +7318,25 @@ static const u16 sDittoTeachableLearnset[] = { #if P_FAMILY_EEVEE static const u16 sEeveeTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7531,13 +7345,12 @@ static const u16 sEeveeTeachableLearnset[] = { static const u16 sVaporeonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7545,10 +7358,8 @@ static const u16 sVaporeonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7560,11 +7371,9 @@ static const u16 sVaporeonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7572,12 +7381,11 @@ static const u16 sVaporeonTeachableLearnset[] = { static const u16 sJolteonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -7585,10 +7393,8 @@ static const u16 sJolteonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -7599,11 +7405,9 @@ static const u16 sJolteonTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7612,13 +7416,12 @@ static const u16 sJolteonTeachableLearnset[] = { static const u16 sFlareonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -7626,10 +7429,8 @@ static const u16 sFlareonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7637,11 +7438,9 @@ static const u16 sFlareonTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7656,8 +7455,6 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -7666,8 +7463,8 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, @@ -7676,52 +7473,53 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sUmbreonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_GEN_2_CROSS_EVOS @@ -7731,33 +7529,31 @@ static const u16 sLeafeonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -7767,33 +7563,31 @@ static const u16 sLeafeonTeachableLearnset[] = { static const u16 sGlaceonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7809,26 +7603,28 @@ static const u16 sSylveonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7843,8 +7639,6 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7853,8 +7647,6 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7867,11 +7659,9 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7885,8 +7675,6 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7894,8 +7682,6 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7909,11 +7695,9 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7927,8 +7711,6 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7936,8 +7718,6 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7946,13 +7726,14 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7969,19 +7750,15 @@ static const u16 sOmanyteTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -7991,12 +7768,10 @@ static const u16 sOmanyteTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8007,20 +7782,16 @@ static const u16 sOmastarTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8030,13 +7801,11 @@ static const u16 sOmastarTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8050,20 +7819,16 @@ static const u16 sKabutoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8073,13 +7838,11 @@ static const u16 sKabutoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8094,21 +7857,17 @@ static const u16 sKabutopsTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8120,14 +7879,12 @@ static const u16 sKabutopsTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8145,20 +7902,16 @@ static const u16 sAerodactylTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8168,11 +7921,9 @@ static const u16 sAerodactylTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8185,24 +7936,21 @@ static const u16 sMunchlaxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -8222,13 +7970,14 @@ static const u16 sMunchlaxTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -8239,14 +7988,13 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, @@ -8254,11 +8002,9 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -8282,7 +8028,6 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -8290,7 +8035,6 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -8304,20 +8048,17 @@ static const u16 sArticunoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8325,11 +8066,9 @@ static const u16 sArticunoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8338,22 +8077,24 @@ static const u16 sArticunoTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sArticunoGalarianTeachableLearnset[] = { MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8367,19 +8108,16 @@ static const u16 sZapdosTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -8388,11 +8126,9 @@ static const u16 sZapdosTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8401,6 +8137,7 @@ static const u16 sZapdosTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sZapdosGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_FACADE, @@ -8408,16 +8145,19 @@ static const u16 sZapdosGalarianTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_SMASH, + MOVE_SANDSTORM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8432,31 +8172,25 @@ static const u16 sMoltresTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8464,19 +8198,23 @@ static const u16 sMoltresTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sMoltresGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8491,9 +8229,7 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8502,9 +8238,7 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_SURF, @@ -8517,10 +8251,8 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8534,9 +8266,7 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8545,9 +8275,7 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_SURF, @@ -8560,10 +8288,8 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8585,9 +8311,7 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8596,13 +8320,11 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -8621,12 +8343,13 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8650,9 +8373,7 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8662,12 +8383,10 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -8693,14 +8412,12 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8724,17 +8441,13 @@ static const u16 sChikoritaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8743,11 +8456,9 @@ static const u16 sChikoritaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8760,18 +8471,14 @@ static const u16 sBayleefTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8781,11 +8488,9 @@ static const u16 sBayleefTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8799,19 +8504,15 @@ static const u16 sMeganiumTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8821,11 +8522,9 @@ static const u16 sMeganiumTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8842,26 +8541,21 @@ static const u16 sCyndaquilTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8878,16 +8572,12 @@ static const u16 sQuilavaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8896,12 +8586,10 @@ static const u16 sQuilavaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8919,18 +8607,15 @@ static const u16 sTyphlosionTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8945,14 +8630,12 @@ static const u16 sTyphlosionTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8961,6 +8644,35 @@ static const u16 sTyphlosionTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sTyphlosionHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -8979,18 +8691,15 @@ static const u16 sTotodileTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9003,13 +8712,11 @@ static const u16 sTotodileTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9027,21 +8734,18 @@ static const u16 sCroconawTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9055,13 +8759,11 @@ static const u16 sCroconawTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9080,22 +8782,19 @@ static const u16 sFeraligatrTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9109,13 +8808,11 @@ static const u16 sFeraligatrTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9125,6 +8822,7 @@ static const u16 sFeraligatrTeachableLearnset[] = { #if P_FAMILY_SENTRET static const u16 sSentretTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, @@ -9132,21 +8830,18 @@ static const u16 sSentretTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -9158,12 +8853,10 @@ static const u16 sSentretTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9180,17 +8873,13 @@ static const u16 sFurretTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9210,12 +8899,10 @@ static const u16 sFurretTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9227,20 +8914,18 @@ static const u16 sFurretTeachableLearnset[] = { static const u16 sHoothootTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -9248,12 +8933,10 @@ static const u16 sHoothootTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9262,34 +8945,31 @@ static const u16 sHoothootTeachableLearnset[] = { static const u16 sNoctowlTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9306,16 +8986,12 @@ static const u16 sLedybaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -9326,11 +9002,9 @@ static const u16 sLedybaTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -9347,33 +9021,28 @@ static const u16 sLedianTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -9389,14 +9058,10 @@ static const u16 sSpinarakTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -9405,10 +9070,8 @@ static const u16 sSpinarakTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -9419,15 +9082,11 @@ static const u16 sAriadosTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -9436,10 +9095,8 @@ static const u16 sAriadosTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9454,15 +9111,11 @@ static const u16 sChinchouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -9473,10 +9126,8 @@ static const u16 sChinchouTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -9489,16 +9140,12 @@ static const u16 sLanturnTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -9509,10 +9156,8 @@ static const u16 sLanturnTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -9521,24 +9166,22 @@ static const u16 sLanturnTeachableLearnset[] = { #if P_FAMILY_TOGEPI static const u16 sTogepiTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9554,7 +9197,6 @@ static const u16 sTogepiTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -9562,7 +9204,6 @@ static const u16 sTogepiTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9573,6 +9214,7 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -9580,8 +9222,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9589,10 +9229,8 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9609,7 +9247,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -9617,7 +9254,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9629,6 +9265,7 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -9636,8 +9273,6 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9645,10 +9280,8 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9656,14 +9289,18 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9680,17 +9317,13 @@ static const u16 sNatuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -9701,11 +9334,9 @@ static const u16 sNatuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9720,9 +9351,7 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9730,8 +9359,6 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -9742,11 +9369,9 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9757,21 +9382,19 @@ static const u16 sXatuTeachableLearnset[] = { #if P_FAMILY_MAREEP static const u16 sMareepTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9779,10 +9402,8 @@ static const u16 sMareepTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9792,23 +9413,23 @@ static const u16 sMareepTeachableLearnset[] = { static const u16 sFlaaffyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9819,13 +9440,12 @@ static const u16 sFlaaffyTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9836,24 +9456,24 @@ static const u16 sFlaaffyTeachableLearnset[] = { static const u16 sAmpharosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9864,13 +9484,12 @@ static const u16 sAmpharosTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9886,17 +9505,13 @@ static const u16 sAzurillTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -9906,12 +9521,10 @@ static const u16 sAzurillTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9927,18 +9540,14 @@ static const u16 sMarillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -9953,13 +9562,12 @@ static const u16 sMarillTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9974,9 +9582,7 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -9984,9 +9590,7 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -10001,13 +9605,12 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -10022,30 +9625,27 @@ static const u16 sBonslyTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -10060,15 +9660,12 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -10086,7 +9683,6 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -10094,7 +9690,6 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -10109,25 +9704,22 @@ static const u16 sHoppipTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10140,25 +9732,22 @@ static const u16 sSkiploomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10171,26 +9760,23 @@ static const u16 sJumpluffTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10207,15 +9793,11 @@ static const u16 sAipomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -10241,12 +9823,10 @@ static const u16 sAipomTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -10264,16 +9844,12 @@ static const u16 sAmbipomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -10286,15 +9862,17 @@ static const u16 sAmbipomTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -10312,25 +9890,20 @@ static const u16 sSunkernTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10343,26 +9916,21 @@ static const u16 sSunfloraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10376,14 +9944,10 @@ static const u16 sYanmaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, @@ -10393,12 +9957,12 @@ static const u16 sYanmaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -10409,30 +9973,27 @@ static const u16 sYanmegaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_GEN_4_CROSS_EVOS @@ -10448,19 +10009,16 @@ static const u16 sWooperTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, @@ -10474,12 +10032,11 @@ static const u16 sWooperTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -10495,21 +10052,17 @@ static const u16 sQuagsireTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -10527,105 +10080,63 @@ static const u16 sQuagsireTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_PALDEAN_FORMS static const u16 sWooperPaldeanTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AMNESIA, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_TOXIC, - MOVE_TRAILBLAZE, - MOVE_WATER_PULSE, MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sClodsireTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AMNESIA, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_VENOSHOCK, + MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_PALDEAN_FORMS @@ -10639,14 +10150,11 @@ static const u16 sMurkrowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -10659,12 +10167,10 @@ static const u16 sMurkrowTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10679,15 +10185,11 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -10696,6 +10198,7 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -10703,7 +10206,6 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10720,14 +10222,11 @@ static const u16 sMisdreavusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10744,11 +10243,9 @@ static const u16 sMisdreavusTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10763,15 +10260,11 @@ static const u16 sMismagiusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10789,7 +10282,6 @@ static const u16 sMismagiusTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10800,7 +10292,6 @@ static const u16 sMismagiusTeachableLearnset[] = { #if P_FAMILY_UNOWN static const u16 sUnownTeachableLearnset[] = { - MOVE_HIDDEN_POWER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_UNOWN @@ -10829,8 +10320,7 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -10838,9 +10328,7 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10854,12 +10342,10 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10868,59 +10354,30 @@ static const u16 sGirafarigTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sFarigirafTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_AMNESIA, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_EARTHQUAKE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IMPRISON, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_TRAILBLAZE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -10933,18 +10390,15 @@ static const u16 sPinecoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -10955,12 +10409,10 @@ static const u16 sPinecoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -10972,19 +10424,16 @@ static const u16 sForretressTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -10995,13 +10444,13 @@ static const u16 sForretressTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PINECO @@ -11017,17 +10466,15 @@ static const u16 sDunsparceTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -11044,14 +10491,12 @@ static const u16 sDunsparceTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -11059,65 +10504,36 @@ static const u16 sDunsparceTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sDudunsparceTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_AIR_SLASH, - MOVE_AMNESIA, - MOVE_BATON_PASS, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_CALM_MIND, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DRAGON_TAIL, - MOVE_DRILL_RUN, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_SPINNER, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, MOVE_SOLAR_BEAM, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -11133,17 +10549,13 @@ static const u16 sGligarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -11157,11 +10569,10 @@ static const u16 sGligarTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11178,18 +10589,14 @@ static const u16 sGliscorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -11198,13 +10605,14 @@ static const u16 sGliscorTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11225,17 +10633,13 @@ static const u16 sSnubbullTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11260,12 +10664,10 @@ static const u16 sSnubbullTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -11283,8 +10685,6 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -11292,11 +10692,9 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11321,13 +10719,11 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -11342,15 +10738,11 @@ static const u16 sQwilfishTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11364,11 +10756,9 @@ static const u16 sQwilfishTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11378,10 +10768,49 @@ static const u16 sQwilfishTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sQwilfishHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sOverqwilTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -11395,16 +10824,12 @@ static const u16 sShuckleTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11413,13 +10838,11 @@ static const u16 sShuckleTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11432,22 +10855,19 @@ static const u16 sHeracrossTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -11457,12 +10877,10 @@ static const u16 sHeracrossTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -11481,18 +10899,14 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -11502,6 +10916,7 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, @@ -11511,12 +10926,12 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11535,9 +10950,7 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -11545,9 +10958,7 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -11557,16 +10968,20 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_COUNTER, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11576,10 +10991,60 @@ static const u16 sWeavileTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sSneaselHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sSneaslerTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -11597,16 +11062,12 @@ static const u16 sTeddiursaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -11625,14 +11086,12 @@ static const u16 sTeddiursaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11651,17 +11110,13 @@ static const u16 sUrsaringTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -11680,14 +11135,12 @@ static const u16 sUrsaringTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11697,10 +11150,71 @@ static const u16 sUrsaringTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sUrsalunaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -11710,33 +11224,29 @@ static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { static const u16 sSlugmaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11748,19 +11258,15 @@ static const u16 sMagcargoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11770,13 +11276,11 @@ static const u16 sMagcargoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11790,21 +11294,17 @@ static const u16 sSwinubTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -11812,12 +11312,10 @@ static const u16 sSwinubTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11829,9 +11327,7 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -11839,12 +11335,10 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -11852,12 +11346,10 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11870,9 +11362,7 @@ static const u16 sMamoswineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -11880,21 +11370,21 @@ static const u16 sMamoswineTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11910,9 +11400,7 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -11920,12 +11408,10 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11938,13 +11424,11 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11979,7 +11463,6 @@ static const u16 sCorsolaGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -12006,13 +11489,13 @@ static const u16 sCursolaTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -12028,16 +11511,12 @@ static const u16 sRemoraidTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, @@ -12048,11 +11527,9 @@ static const u16 sRemoraidTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12068,16 +11545,12 @@ static const u16 sOctilleryTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, @@ -12089,12 +11562,10 @@ static const u16 sOctilleryTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12112,15 +11583,13 @@ static const u16 sDelibirdTeachableLearnset[] = { MOVE_FACADE, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_STEEL_WING, MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -12132,13 +11601,11 @@ static const u16 sDelibirdTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12155,26 +11622,22 @@ static const u16 sMantykeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12190,17 +11653,13 @@ static const u16 sMantineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -12209,12 +11668,10 @@ static const u16 sMantineTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12230,16 +11687,13 @@ static const u16 sSkarmoryTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -12251,12 +11705,10 @@ static const u16 sSkarmoryTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -12271,16 +11723,13 @@ static const u16 sHoundourTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -12295,11 +11744,9 @@ static const u16 sHoundourTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12311,17 +11758,14 @@ static const u16 sHoundoomTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -12337,11 +11781,9 @@ static const u16 sHoundoomTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12351,71 +11793,65 @@ static const u16 sHoundoomTeachableLearnset[] = { #if P_FAMILY_PHANPY static const u16 sPhanpyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sDonphanTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -12425,12 +11861,12 @@ static const u16 sDonphanTeachableLearnset[] = { static const u16 sStantlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -12438,9 +11874,7 @@ static const u16 sStantlerTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12454,12 +11888,10 @@ static const u16 sStantlerTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12468,6 +11900,33 @@ static const u16 sStantlerTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sWyrdeerTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -12488,19 +11947,15 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -12523,7 +11978,6 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -12531,7 +11985,6 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -12547,8 +12000,6 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -12556,11 +12007,9 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -12571,12 +12020,10 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12594,8 +12041,6 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -12603,11 +12048,9 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -12616,12 +12059,10 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12637,9 +12078,7 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -12647,11 +12086,9 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_SURF, @@ -12662,12 +12099,10 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12682,18 +12117,14 @@ static const u16 sLarvitarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, @@ -12701,35 +12132,30 @@ static const u16 sLarvitarTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sPupitarTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, @@ -12737,12 +12163,10 @@ static const u16 sPupitarTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -12761,20 +12185,16 @@ static const u16 sTyranitarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -12793,15 +12213,14 @@ static const u16 sTyranitarTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -12820,10 +12239,8 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -12833,12 +12250,10 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12856,12 +12271,10 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12880,9 +12293,7 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -12891,12 +12302,10 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -12906,15 +12315,14 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12930,9 +12338,7 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -12940,10 +12346,8 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12956,12 +12360,10 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -12982,20 +12384,17 @@ static const u16 sTreeckoTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13005,13 +12404,11 @@ static const u16 sTreeckoTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13030,20 +12427,17 @@ static const u16 sGrovyleTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13053,13 +12447,11 @@ static const u16 sGrovyleTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13080,22 +12472,19 @@ static const u16 sSceptileTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13105,13 +12494,11 @@ static const u16 sSceptileTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13130,15 +12517,11 @@ static const u16 sTorchicTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -13148,13 +12531,11 @@ static const u16 sTorchicTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13173,17 +12554,14 @@ static const u16 sCombuskenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13194,13 +12572,11 @@ static const u16 sCombuskenTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13221,20 +12597,17 @@ static const u16 sBlazikenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13245,13 +12618,11 @@ static const u16 sBlazikenTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13268,18 +12639,15 @@ static const u16 sMudkipTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13291,13 +12659,11 @@ static const u16 sMudkipTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13311,18 +12677,16 @@ static const u16 sMarshtompTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, + MOVE_FOCUS_PUNCH, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13338,14 +12702,12 @@ static const u16 sMarshtompTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13354,26 +12716,23 @@ static const u16 sSwampertTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13389,14 +12748,12 @@ static const u16 sSwampertTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13408,16 +12765,12 @@ static const u16 sPoochyenaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -13429,12 +12782,10 @@ static const u16 sPoochyenaTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13444,17 +12795,13 @@ static const u16 sMightyenaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -13467,12 +12814,10 @@ static const u16 sMightyenaTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13486,16 +12831,12 @@ static const u16 sZigzagoonTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -13511,12 +12852,10 @@ static const u16 sZigzagoonTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -13530,18 +12869,14 @@ static const u16 sLinooneTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -13558,12 +12893,10 @@ static const u16 sLinooneTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -13595,7 +12928,6 @@ static const u16 sZigzagoonGalarianTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -13626,7 +12958,6 @@ static const u16 sLinooneGalarianTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -13663,7 +12994,6 @@ static const u16 sObstagoonTeachableLearnset[] = { MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -13688,16 +13018,12 @@ static const u16 sBeautiflyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -13705,10 +13031,8 @@ static const u16 sBeautiflyTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -13724,16 +13048,12 @@ static const u16 sDustoxTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -13742,10 +13062,8 @@ static const u16 sDustoxTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -13760,16 +13078,12 @@ static const u16 sLotadTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, @@ -13781,10 +13095,8 @@ static const u16 sLotadTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -13799,65 +13111,13 @@ static const u16 sLombreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sLudicoloTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_BULLET_SEED, - MOVE_DIVE, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -13877,13 +13137,58 @@ static const u16 sLudicoloTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLudicoloTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -13898,14 +13203,11 @@ static const u16 sSeedotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -13915,11 +13217,9 @@ static const u16 sSeedotTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -13934,16 +13234,13 @@ static const u16 sNuzleafTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -13958,14 +13255,12 @@ static const u16 sNuzleafTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13982,20 +13277,18 @@ static const u16 sShiftryTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, @@ -14007,14 +13300,12 @@ static const u16 sShiftryTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14029,13 +13320,9 @@ static const u16 sTaillowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -14043,11 +13330,9 @@ static const u16 sTaillowTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14059,14 +13344,10 @@ static const u16 sSwellowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -14074,11 +13355,9 @@ static const u16 sSwellowTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14093,28 +13372,24 @@ static const u16 sWingullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14127,30 +13402,26 @@ static const u16 sPelipperTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14164,17 +13435,14 @@ static const u16 sRaltsTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14193,12 +13461,13 @@ static const u16 sRaltsTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14212,17 +13481,15 @@ static const u16 sKirliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14241,12 +13508,13 @@ static const u16 sKirliaTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14260,18 +13528,15 @@ static const u16 sGardevoirTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14290,12 +13555,13 @@ static const u16 sGardevoirTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14316,20 +13582,17 @@ static const u16 sGalladeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14341,17 +13604,21 @@ static const u16 sGalladeTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14369,30 +13636,26 @@ static const u16 sSurskitTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14405,31 +13668,27 @@ static const u16 sMasquerainTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14444,14 +13703,11 @@ static const u16 sShroomishTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -14460,37 +13716,35 @@ static const u16 sShroomishTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sBreloomTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -14505,14 +13759,13 @@ static const u16 sBreloomTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14532,21 +13785,18 @@ static const u16 sSlakothTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14562,13 +13812,12 @@ static const u16 sSlakothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14581,29 +13830,27 @@ static const u16 sVigorothTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14619,15 +13866,15 @@ static const u16 sVigorothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -14638,30 +13885,28 @@ static const u16 sSlakingTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14677,15 +13922,15 @@ static const u16 sSlakingTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SLAKOTH @@ -14698,14 +13943,10 @@ static const u16 sNincadaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14713,11 +13954,9 @@ static const u16 sNincadaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -14730,15 +13969,11 @@ static const u16 sNinjaskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14747,11 +13982,9 @@ static const u16 sNinjaskTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14765,15 +13998,11 @@ static const u16 sShedinjaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14783,11 +14012,9 @@ static const u16 sShedinjaTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -14801,15 +14028,11 @@ static const u16 sWhismurTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14827,14 +14050,12 @@ static const u16 sWhismurTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14849,18 +14070,14 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14881,7 +14098,6 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -14889,7 +14105,6 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14904,19 +14119,15 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14938,7 +14149,6 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -14946,7 +14156,6 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14963,18 +14172,16 @@ static const u16 sMakuhitaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -14986,14 +14193,13 @@ static const u16 sMakuhitaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -15007,19 +14213,17 @@ static const u16 sHariyamaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15031,14 +14235,13 @@ static const u16 sHariyamaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -15050,15 +14253,11 @@ static const u16 sNosepassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15075,13 +14274,11 @@ static const u16 sNosepassTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15094,16 +14291,12 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15112,6 +14305,8 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, @@ -15121,7 +14316,6 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15139,16 +14333,12 @@ static const u16 sSkittyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15163,13 +14353,11 @@ static const u16 sSkittyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15184,18 +14372,14 @@ static const u16 sDelcattyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15211,13 +14395,11 @@ static const u16 sDelcattyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15230,6 +14412,7 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, @@ -15237,18 +14420,19 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -15269,15 +14453,14 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SABLEYE @@ -15291,18 +14474,14 @@ static const u16 sMawileTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -15321,14 +14500,12 @@ static const u16 sMawileTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -15345,18 +14522,14 @@ static const u16 sAronTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15367,13 +14540,11 @@ static const u16 sAronTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -15386,18 +14557,14 @@ static const u16 sLaironTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15408,13 +14575,11 @@ static const u16 sLaironTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -15433,20 +14598,16 @@ static const u16 sAggronTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -15469,14 +14630,12 @@ static const u16 sAggronTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15486,6 +14645,7 @@ static const u16 sAggronTeachableLearnset[] = { #if P_FAMILY_MEDITITE static const u16 sMedititeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -15494,21 +14654,20 @@ static const u16 sMedititeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15521,14 +14680,12 @@ static const u16 sMedititeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15536,6 +14693,7 @@ static const u16 sMedititeTeachableLearnset[] = { }; static const u16 sMedichamTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -15544,8 +14702,6 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -15553,13 +14709,14 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15572,14 +14729,12 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15594,16 +14749,12 @@ static const u16 sElectrikeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THIEF, @@ -15613,11 +14764,9 @@ static const u16 sElectrikeTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15630,8 +14779,6 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -15639,9 +14786,7 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THIEF, @@ -15651,11 +14796,9 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15669,16 +14812,13 @@ static const u16 sPlusleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -15691,13 +14831,11 @@ static const u16 sPlusleTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15712,15 +14850,11 @@ static const u16 sMinunTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -15734,13 +14868,11 @@ static const u16 sMinunTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15758,19 +14890,16 @@ static const u16 sVolbeatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -15785,13 +14914,11 @@ static const u16 sVolbeatTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15807,15 +14934,11 @@ static const u16 sIllumiseTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15834,13 +14957,11 @@ static const u16 sIllumiseTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15858,14 +14979,10 @@ static const u16 sBudewTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -15876,7 +14993,6 @@ static const u16 sBudewTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15891,14 +15007,10 @@ static const u16 sRoseliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -15908,12 +15020,10 @@ static const u16 sRoseliaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15928,27 +15038,23 @@ static const u16 sRoseradeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15963,16 +15069,12 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -15980,6 +15082,7 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, @@ -15992,34 +15095,31 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sSwalotTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -16027,6 +15127,7 @@ static const u16 sSwalotTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, @@ -16039,14 +15140,15 @@ static const u16 sSwalotTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GULPIN @@ -16058,15 +15160,11 @@ static const u16 sCarvanhaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -16078,11 +15176,9 @@ static const u16 sCarvanhaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16095,19 +15191,15 @@ static const u16 sSharpedoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, @@ -16120,11 +15212,9 @@ static const u16 sSharpedoTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16139,18 +15229,14 @@ static const u16 sWailmerTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -16161,11 +15247,9 @@ static const u16 sWailmerTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16177,19 +15261,15 @@ static const u16 sWailordTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -16200,11 +15280,9 @@ static const u16 sWailordTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16219,16 +15297,14 @@ static const u16 sNumelTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -16236,13 +15312,11 @@ static const u16 sNumelTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16255,18 +15329,15 @@ static const u16 sCameruptTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -16276,13 +15347,11 @@ static const u16 sCameruptTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16296,17 +15365,14 @@ static const u16 sTorkoalTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -16316,13 +15382,11 @@ static const u16 sTorkoalTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16335,8 +15399,6 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -16344,8 +15406,6 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16360,11 +15420,9 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -16375,12 +15433,11 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -16389,8 +15446,6 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16411,13 +15466,12 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16436,17 +15490,13 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16469,7 +15519,6 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -16477,7 +15526,6 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16492,17 +15540,13 @@ static const u16 sTrapinchTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -16511,34 +15555,30 @@ static const u16 sTrapinchTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sVibravaTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -16548,12 +15588,10 @@ static const u16 sVibravaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16570,18 +15608,14 @@ static const u16 sFlygonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -16592,12 +15626,12 @@ static const u16 sFlygonTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16611,20 +15645,19 @@ static const u16 sCacneaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -16633,13 +15666,12 @@ static const u16 sCacneaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -16650,22 +15682,23 @@ static const u16 sCacturneTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -16675,13 +15708,12 @@ static const u16 sCacturneTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -16695,15 +15727,11 @@ static const u16 sSwabluTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -16713,12 +15741,10 @@ static const u16 sSwabluTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16734,19 +15760,15 @@ static const u16 sAltariaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -16756,12 +15778,10 @@ static const u16 sAltariaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16780,24 +15800,22 @@ static const u16 sZangooseTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, @@ -16816,14 +15834,12 @@ static const u16 sZangooseTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -16836,21 +15852,19 @@ static const u16 sZangooseTeachableLearnset[] = { #if P_FAMILY_SEVIPER static const u16 sSeviperTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -16862,11 +15876,9 @@ static const u16 sSeviperTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -16882,8 +15894,7 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -16892,11 +15903,9 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_TOXIC, @@ -16907,13 +15916,11 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16929,20 +15936,17 @@ static const u16 sSolrockTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -16954,15 +15958,14 @@ static const u16 sSolrockTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SOLROCK @@ -16975,17 +15978,14 @@ static const u16 sBarboachTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -16993,50 +15993,48 @@ static const u16 sBarboachTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sWhiscashTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BARBOACH @@ -17051,21 +16049,18 @@ static const u16 sCorphishTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -17075,12 +16070,10 @@ static const u16 sCorphishTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17096,22 +16089,19 @@ static const u16 sCrawdauntTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -17121,12 +16111,10 @@ static const u16 sCrawdauntTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -17142,8 +16130,6 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -17151,11 +16137,9 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -17165,13 +16149,11 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17183,8 +16165,6 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -17193,12 +16173,10 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -17209,13 +16187,11 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17228,15 +16204,11 @@ static const u16 sLileepTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -17244,13 +16216,11 @@ static const u16 sLileepTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17259,21 +16229,18 @@ static const u16 sLileepTeachableLearnset[] = { static const u16 sCradilyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -17282,13 +16249,11 @@ static const u16 sCradilyTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17304,15 +16269,11 @@ static const u16 sAnorithTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -17320,12 +16281,10 @@ static const u16 sAnorithTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17340,17 +16299,13 @@ static const u16 sArmaldoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -17359,13 +16314,11 @@ static const u16 sArmaldoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17379,17 +16332,13 @@ static const u16 sFeebasTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -17397,10 +16346,8 @@ static const u16 sFeebasTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -17412,9 +16359,7 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -17422,9 +16367,7 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -17433,12 +16376,10 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -17454,16 +16395,12 @@ static const u16 sCastformTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -17478,11 +16415,9 @@ static const u16 sCastformTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -17504,17 +16439,13 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17540,7 +16471,6 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -17548,7 +16478,6 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -17564,55 +16493,10 @@ static const u16 sShuppetTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sBanetteTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17630,13 +16514,48 @@ static const u16 sBanetteTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, - MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBanetteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -17650,15 +16569,11 @@ static const u16 sDuskullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17672,11 +16587,9 @@ static const u16 sDuskullTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17691,18 +16604,14 @@ static const u16 sDusclopsTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17724,14 +16633,12 @@ static const u16 sDusclopsTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -17748,18 +16655,14 @@ static const u16 sDusknoirTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17769,18 +16672,22 @@ static const u16 sDusknoirTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -17792,23 +16699,21 @@ static const u16 sTropiusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -17818,11 +16723,9 @@ static const u16 sTropiusTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17837,17 +16740,13 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17856,6 +16755,7 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -17863,7 +16763,6 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -17877,17 +16776,13 @@ static const u16 sChimechoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17901,13 +16796,12 @@ static const u16 sChimechoTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -17925,20 +16819,16 @@ static const u16 sAbsolTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -17958,13 +16848,11 @@ static const u16 sAbsolTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -17980,17 +16868,13 @@ static const u16 sSnoruntTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -17998,11 +16882,9 @@ static const u16 sSnoruntTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18014,18 +16896,14 @@ static const u16 sGlalieTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_TAUNT, MOVE_TORMENT, @@ -18037,11 +16915,9 @@ static const u16 sGlalieTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18053,19 +16929,16 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -18075,6 +16948,7 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICE_PUNCH, @@ -18084,7 +16958,6 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -18100,18 +16973,14 @@ static const u16 sSphealTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18122,13 +16991,11 @@ static const u16 sSphealTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18140,19 +17007,15 @@ static const u16 sSealeoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18163,13 +17026,11 @@ static const u16 sSealeoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18181,20 +17042,16 @@ static const u16 sWalreinTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18206,14 +17063,13 @@ static const u16 sWalreinTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SPHEAL @@ -18225,15 +17081,11 @@ static const u16 sClamperlTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18242,10 +17094,8 @@ static const u16 sClamperlTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18256,17 +17106,13 @@ static const u16 sHuntailTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, @@ -18276,11 +17122,9 @@ static const u16 sHuntailTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18292,18 +17136,14 @@ static const u16 sGorebyssTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SURF, MOVE_TOXIC, @@ -18313,12 +17153,10 @@ static const u16 sGorebyssTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18334,20 +17172,16 @@ static const u16 sRelicanthTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18356,13 +17190,11 @@ static const u16 sRelicanthTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18375,16 +17207,12 @@ static const u16 sLuvdiscTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18392,11 +17220,9 @@ static const u16 sLuvdiscTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18414,16 +17240,12 @@ static const u16 sBagonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -18432,12 +17254,10 @@ static const u16 sBagonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18452,16 +17272,12 @@ static const u16 sShelgonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -18470,13 +17286,11 @@ static const u16 sShelgonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18493,18 +17307,14 @@ static const u16 sSalamenceTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18514,13 +17324,11 @@ static const u16 sSalamenceTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18540,8 +17348,7 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -18549,11 +17356,9 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -18568,14 +17373,12 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -18590,8 +17393,7 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -18599,11 +17401,9 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -18618,14 +17418,12 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -18641,17 +17439,13 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18669,7 +17463,6 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18677,7 +17470,6 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18693,19 +17485,15 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THUNDER, @@ -18722,7 +17510,6 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18730,7 +17517,6 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18746,18 +17532,14 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18774,7 +17556,6 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18782,7 +17563,6 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18803,8 +17583,6 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -18813,11 +17591,9 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -18835,12 +17611,10 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18861,8 +17635,6 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -18871,11 +17643,9 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -18893,12 +17663,10 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18915,20 +17683,16 @@ static const u16 sKyogreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SURF, @@ -18942,13 +17706,11 @@ static const u16 sKyogreTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18969,20 +17731,17 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -19000,7 +17759,6 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -19008,7 +17766,6 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19032,8 +17789,6 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -19041,12 +17796,10 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -19062,13 +17815,11 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19084,8 +17835,6 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -19093,10 +17842,8 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19114,13 +17861,13 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -19139,8 +17886,6 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19149,11 +17894,9 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19168,6 +17911,7 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -19179,7 +17923,6 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -19196,8 +17939,6 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19206,11 +17947,9 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19224,6 +17963,26 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -19236,8 +17995,6 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19246,11 +18003,9 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19264,6 +18019,26 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -19276,8 +18051,6 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19286,11 +18059,9 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19304,6 +18075,27 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DEOXYS @@ -19316,18 +18108,15 @@ static const u16 sTurtwigTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -19338,7 +18127,6 @@ static const u16 sTurtwigTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19351,27 +18139,25 @@ static const u16 sGrotleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19385,32 +18171,29 @@ static const u16 sTorterraTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19430,28 +18213,29 @@ static const u16 sChimcharTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_ROCK_TOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19471,29 +18255,29 @@ static const u16 sMonfernoTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19515,32 +18299,33 @@ static const u16 sInfernapeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19560,27 +18345,26 @@ static const u16 sPiplupTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -19594,29 +18378,27 @@ static const u16 sPrinplupTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -19631,34 +18413,33 @@ static const u16 sEmpoleonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -19671,13 +18452,9 @@ static const u16 sStarlyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -19687,7 +18464,6 @@ static const u16 sStarlyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19699,22 +18475,18 @@ static const u16 sStaraviaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19726,23 +18498,19 @@ static const u16 sStaraptorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19757,16 +18525,12 @@ static const u16 sBidoofTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -19784,7 +18548,6 @@ static const u16 sBidoofTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19801,17 +18564,13 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -19825,6 +18584,7 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, @@ -19832,7 +18592,6 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19856,15 +18615,12 @@ static const u16 sKricketuneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -19874,7 +18630,6 @@ static const u16 sKricketuneTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19887,28 +18642,25 @@ static const u16 sShinxTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19920,28 +18672,25 @@ static const u16 sLuxioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19953,29 +18702,27 @@ static const u16 sLuxrayTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19993,19 +18740,15 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20013,6 +18756,7 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -20020,7 +18764,6 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -20034,25 +18777,22 @@ static const u16 sRampardosTeachableLearnset[] = { MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20061,13 +18801,14 @@ static const u16 sRampardosTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -20085,19 +18826,15 @@ static const u16 sShieldonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20114,7 +18851,6 @@ static const u16 sShieldonTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20128,20 +18864,17 @@ static const u16 sBastiodonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20150,12 +18883,14 @@ static const u16 sBastiodonTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20163,7 +18898,6 @@ static const u16 sBastiodonTeachableLearnset[] = { #if P_FAMILY_BURMY static const u16 sBurmyTeachableLearnset[] = { - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_SNORE, MOVE_UNAVAILABLE, @@ -20172,20 +18906,17 @@ static const u16 sBurmyTeachableLearnset[] = { static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -20197,7 +18928,6 @@ static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20209,20 +18939,18 @@ static const u16 sWormadamSandyCloakTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -20233,28 +18961,26 @@ static const u16 sWormadamSandyCloakTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sWormadamTrashCloakTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -20263,7 +18989,6 @@ static const u16 sWormadamTrashCloakTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20274,17 +18999,13 @@ static const u16 sMothimTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -20297,7 +19018,6 @@ static const u16 sMothimTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20307,6 +19027,7 @@ static const u16 sMothimTeachableLearnset[] = { #if P_FAMILY_COMBEE static const u16 sCombeeTeachableLearnset[] = { MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20319,16 +19040,13 @@ static const u16 sVespiquenTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_ENDURE, @@ -20336,7 +19054,6 @@ static const u16 sVespiquenTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20345,22 +19062,22 @@ static const u16 sVespiquenTeachableLearnset[] = { #if P_FAMILY_PACHIRISU static const u16 sPachirisuTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -20370,7 +19087,6 @@ static const u16 sPachirisuTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20390,20 +19106,19 @@ static const u16 sBuizelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -20414,7 +19129,6 @@ static const u16 sBuizelTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20430,34 +19144,34 @@ static const u16 sFloatzelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20471,23 +19185,19 @@ static const u16 sCherubiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -20499,23 +19209,20 @@ static const u16 sCherrimTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -20529,26 +19236,25 @@ static const u16 sShellosTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20562,19 +19268,15 @@ static const u16 sGastrodonTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -20582,13 +19284,13 @@ static const u16 sGastrodonTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20596,20 +19298,18 @@ static const u16 sGastrodonTeachableLearnset[] = { #if P_FAMILY_DRIFLOON static const u16 sDrifloonTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FLY, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -20628,7 +19328,6 @@ static const u16 sDrifloonTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -20636,6 +19335,7 @@ static const u16 sDrifloonTeachableLearnset[] = { }; static const u16 sDrifblimTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, @@ -20643,15 +19343,11 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -20660,6 +19356,7 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, @@ -20669,7 +19366,6 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -20685,16 +19381,12 @@ static const u16 sBunearyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -20703,13 +19395,15 @@ static const u16 sBunearyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20725,17 +19419,13 @@ static const u16 sLopunnyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -20746,14 +19436,16 @@ static const u16 sLopunnyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20771,14 +19463,10 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -20790,6 +19478,7 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -20797,7 +19486,6 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20811,16 +19499,12 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -20833,6 +19517,7 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -20841,7 +19526,6 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20857,16 +19541,12 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -20875,6 +19555,7 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, @@ -20882,7 +19563,6 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20896,17 +19576,13 @@ static const u16 sSkuntankTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -20916,13 +19592,14 @@ static const u16 sSkuntankTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20936,24 +19613,21 @@ static const u16 sBronzorTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_PSYCH_UP, @@ -20961,7 +19635,6 @@ static const u16 sBronzorTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20972,8 +19645,6 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -20981,18 +19652,17 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, @@ -21001,7 +19671,6 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21014,13 +19683,9 @@ static const u16 sChatotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -21028,11 +19693,9 @@ static const u16 sChatotTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -21046,18 +19709,15 @@ static const u16 sSpiritombTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -21065,13 +19725,13 @@ static const u16 sSpiritombTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21089,18 +19749,14 @@ static const u16 sGibleTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21112,9 +19768,9 @@ static const u16 sGibleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -21129,30 +19785,28 @@ static const u16 sGabiteTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -21168,30 +19822,27 @@ static const u16 sGarchompTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21201,6 +19852,7 @@ static const u16 sGarchompTeachableLearnset[] = { #if P_FAMILY_RIOLU static const u16 sRioluTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21209,17 +19861,13 @@ static const u16 sRioluTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21227,11 +19875,13 @@ static const u16 sRioluTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21240,6 +19890,7 @@ static const u16 sRioluTeachableLearnset[] = { }; static const u16 sLucarioTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21249,33 +19900,33 @@ static const u16 sLucarioTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21291,17 +19942,13 @@ static const u16 sHippopotasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21313,7 +19960,6 @@ static const u16 sHippopotasTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21324,29 +19970,25 @@ static const u16 sHippowdonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21362,16 +20004,12 @@ static const u16 sSkorupiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -21385,7 +20023,6 @@ static const u16 sSkorupiTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21401,18 +20038,14 @@ static const u16 sDrapionTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -21427,7 +20060,6 @@ static const u16 sDrapionTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21436,6 +20068,7 @@ static const u16 sDrapionTeachableLearnset[] = { #if P_FAMILY_CROAGUNK static const u16 sCroagunkTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21444,15 +20077,11 @@ static const u16 sCroagunkTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -21468,17 +20097,19 @@ static const u16 sCroagunkTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sToxicroakTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21488,16 +20119,12 @@ static const u16 sToxicroakTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -21507,15 +20134,18 @@ static const u16 sToxicroakTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -21531,14 +20161,10 @@ static const u16 sCarnivineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -21549,7 +20175,6 @@ static const u16 sCarnivineTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21564,17 +20189,14 @@ static const u16 sFinneonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -21583,31 +20205,28 @@ static const u16 sFinneonTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sLumineonTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -21616,7 +20235,6 @@ static const u16 sLumineonTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -21631,31 +20249,28 @@ static const u16 sSnoverTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21671,10 +20286,8 @@ static const u16 sAbomasnowTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21682,24 +20295,25 @@ static const u16 sAbomasnowTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21711,15 +20325,11 @@ static const u16 sRotomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -21734,7 +20344,6 @@ static const u16 sRotomTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21748,9 +20357,7 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -21759,10 +20366,8 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21776,11 +20381,11 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21796,8 +20401,6 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21807,10 +20410,8 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21819,15 +20420,16 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21844,8 +20446,6 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -21854,10 +20454,8 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21868,16 +20466,17 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21900,8 +20499,6 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21909,19 +20506,18 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, @@ -21929,7 +20525,6 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21952,21 +20547,17 @@ static const u16 sPalkiaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -21974,15 +20565,17 @@ static const u16 sPalkiaTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, + MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21999,30 +20592,27 @@ static const u16 sHeatranTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -22036,32 +20626,32 @@ static const u16 sRegigigasTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_PROTECT, MOVE_RAIN_DANCE, - MOVE_RETURN, + MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -22079,19 +20669,15 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, @@ -22100,6 +20686,7 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22108,7 +20695,6 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -22123,8 +20709,6 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -22133,14 +20717,15 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22149,7 +20734,6 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -22160,19 +20744,16 @@ static const u16 sCresseliaTeachableLearnset[] = { #if P_FAMILY_MANAPHY static const u16 sPhioneTeachableLearnset[] = { MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -22183,7 +20764,6 @@ static const u16 sPhioneTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -22196,9 +20776,7 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -22207,9 +20785,7 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SURF, @@ -22222,7 +20798,6 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -22240,18 +20815,14 @@ static const u16 sDarkraiTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -22272,7 +20843,6 @@ static const u16 sDarkraiTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22283,30 +20853,27 @@ static const u16 sDarkraiTeachableLearnset[] = { #if P_FAMILY_SHAYMIN static const u16 sShayminLandTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22314,23 +20881,29 @@ static const u16 sShayminLandTeachableLearnset[] = { }; static const u16 sShayminSkyTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SHAYMIN @@ -22340,6 +20913,7 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, @@ -22352,10 +20926,8 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -22366,13 +20938,11 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -22380,11 +20950,14 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22395,7 +20968,6 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22412,18 +20984,14 @@ static const u16 sVictiniTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -22436,11 +21004,13 @@ static const u16 sVictiniTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22451,32 +21021,31 @@ static const u16 sVictiniTeachableLearnset[] = { static const u16 sSnivyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22484,32 +21053,31 @@ static const u16 sSnivyTeachableLearnset[] = { static const u16 sServineTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22517,24 +21085,21 @@ static const u16 sServineTeachableLearnset[] = { static const u16 sSerperiorTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -22542,10 +21107,13 @@ static const u16 sSerperiorTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22554,21 +21122,18 @@ static const u16 sSerperiorTeachableLearnset[] = { #if P_FAMILY_TEPIG static const u16 sTepigTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -22576,10 +21141,13 @@ static const u16 sTepigTeachableLearnset[] = { MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -22587,34 +21155,35 @@ static const u16 sTepigTeachableLearnset[] = { static const u16 sPigniteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -22624,36 +21193,36 @@ static const u16 sEmboarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -22670,28 +21239,26 @@ static const u16 sOshawottTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22700,33 +21267,32 @@ static const u16 sDewottTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22735,41 +21301,65 @@ static const u16 sSamurottTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sSamurottHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -22783,14 +21373,10 @@ static const u16 sPatratTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -22798,7 +21384,6 @@ static const u16 sPatratTeachableLearnset[] = { MOVE_TOXIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -22806,6 +21391,7 @@ static const u16 sPatratTeachableLearnset[] = { static const u16 sWatchogTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -22813,17 +21399,13 @@ static const u16 sWatchogTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22837,7 +21419,6 @@ static const u16 sWatchogTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -22853,16 +21434,12 @@ static const u16 sLillipupTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -22872,7 +21449,6 @@ static const u16 sLillipupTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22884,16 +21460,12 @@ static const u16 sHerdierTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22901,9 +21473,10 @@ static const u16 sHerdierTeachableLearnset[] = { MOVE_SURF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22915,17 +21488,13 @@ static const u16 sStoutlandTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22934,9 +21503,10 @@ static const u16 sStoutlandTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22950,14 +21520,10 @@ static const u16 sPurrloinTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -22966,11 +21532,12 @@ static const u16 sPurrloinTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -22981,16 +21548,12 @@ static const u16 sLiepardTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -22999,11 +21562,12 @@ static const u16 sLiepardTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23019,16 +21583,12 @@ static const u16 sPansageTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23037,7 +21597,6 @@ static const u16 sPansageTeachableLearnset[] = { MOVE_TOXIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23045,23 +21604,20 @@ static const u16 sPansageTeachableLearnset[] = { static const u16 sSimisageTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23071,7 +21627,6 @@ static const u16 sSimisageTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23087,16 +21642,12 @@ static const u16 sPansearTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23106,7 +21657,6 @@ static const u16 sPansearTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23121,17 +21671,13 @@ static const u16 sSimisearTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23142,7 +21688,6 @@ static const u16 sSimisearTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23158,18 +21703,14 @@ static const u16 sPanpourTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -23181,7 +21722,6 @@ static const u16 sPanpourTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23196,19 +21736,15 @@ static const u16 sSimipourTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -23221,7 +21757,6 @@ static const u16 sSimipourTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23234,18 +21769,14 @@ static const u16 sMunnaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23253,11 +21784,11 @@ static const u16 sMunnaTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -23270,8 +21801,6 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -23279,10 +21808,8 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23290,12 +21817,13 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23308,21 +21836,18 @@ static const u16 sPidoveTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -23332,21 +21857,18 @@ static const u16 sTranquillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -23356,23 +21878,20 @@ static const u16 sUnfezantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PIDOVE @@ -23383,25 +21902,23 @@ static const u16 sBlitzleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23411,26 +21928,28 @@ static const u16 sZebstrikaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23442,23 +21961,19 @@ static const u16 sRoggenrolaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23468,23 +21983,19 @@ static const u16 sBoldoreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23494,25 +22005,21 @@ static const u16 sGigalithTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23527,18 +22034,14 @@ static const u16 sWoobatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23548,11 +22051,12 @@ static const u16 sWoobatTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23565,9 +22069,7 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -23575,9 +22077,7 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23587,11 +22087,12 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23607,23 +22108,21 @@ static const u16 sDrilburTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -23638,24 +22137,23 @@ static const u16 sExcadrillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -23674,8 +22172,6 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -23685,9 +22181,7 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -23697,15 +22191,18 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -23722,28 +22219,27 @@ static const u16 sTimburrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23757,26 +22253,27 @@ static const u16 sGurdurrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23791,27 +22288,29 @@ static const u16 sConkeldurrTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23823,22 +22322,19 @@ static const u16 sTympoleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23848,23 +22344,20 @@ static const u16 sPalpitoadTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23873,32 +22366,32 @@ static const u16 sSeismitoadTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23914,15 +22407,11 @@ static const u16 sThrohTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23931,11 +22420,12 @@ static const u16 sThrohTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23952,15 +22442,11 @@ static const u16 sSawkTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23969,10 +22455,11 @@ static const u16 sSawkTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23987,15 +22474,12 @@ static const u16 sSewaddleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -24003,7 +22487,6 @@ static const u16 sSewaddleTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24015,22 +22498,19 @@ static const u16 sSwadloonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24038,30 +22518,28 @@ static const u16 sSwadloonTeachableLearnset[] = { static const u16 sLeavannyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24073,23 +22551,20 @@ static const u16 sVenipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24098,23 +22573,20 @@ static const u16 sWhirlipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24126,16 +22598,12 @@ static const u16 sScolipedeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -24144,11 +22612,12 @@ static const u16 sScolipedeTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24161,23 +22630,20 @@ static const u16 sCottoneeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -24186,17 +22652,13 @@ static const u16 sWhimsicottTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -24204,10 +22666,11 @@ static const u16 sWhimsicottTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_COTTONEE @@ -24215,18 +22678,15 @@ static const u16 sWhimsicottTeachableLearnset[] = { #if P_FAMILY_PETILIL static const u16 sPetililTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -24234,34 +22694,31 @@ static const u16 sPetililTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sLilligantTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24269,6 +22726,24 @@ static const u16 sLilligantTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sLilligantHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -24277,28 +22752,27 @@ static const u16 sLilligantHisuianTeachableLearnset[] = { #if P_FAMILY_BASCULIN static const u16 sBasculinTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -24306,10 +22780,42 @@ static const u16 sBasculinTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sBasculinWhiteStripedTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBasculegionTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -24317,40 +22823,6 @@ static const u16 sBasculegionTeachableLearnset[] = { #if P_FAMILY_SANDILE static const u16 sSandileTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SLUDGE_BOMB, - MOVE_SNATCH, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sKrokorokTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CUT, @@ -24358,18 +22830,48 @@ static const u16 sKrokorokTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKrokorokTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24377,11 +22879,16 @@ static const u16 sKrokorokTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24398,18 +22905,14 @@ static const u16 sKrookodileTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24417,12 +22920,16 @@ static const u16 sKrookodileTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24438,16 +22945,12 @@ static const u16 sDarumakaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -24457,11 +22960,12 @@ static const u16 sDarumakaTeachableLearnset[] = { MOVE_TOXIC, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24477,18 +22981,14 @@ static const u16 sDarmanitanTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -24497,12 +22997,15 @@ static const u16 sDarmanitanTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24534,7 +23037,6 @@ static const u16 sDarumakaGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -24548,6 +23050,7 @@ static const u16 sDarmanitanGalarianTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_OVERHEAT, @@ -24568,7 +23071,6 @@ static const u16 sDarmanitanGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -24581,20 +23083,17 @@ static const u16 sMaractusTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24609,15 +23108,11 @@ static const u16 sDwebbleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, @@ -24627,7 +23122,6 @@ static const u16 sDwebbleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24641,24 +23135,21 @@ static const u16 sCrustleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24675,31 +23166,31 @@ static const u16 sScraggyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -24714,18 +23205,14 @@ static const u16 sScraftyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24734,13 +23221,20 @@ static const u16 sScraftyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -24755,8 +23249,6 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -24765,9 +23257,7 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24776,12 +23266,13 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -24794,15 +23285,11 @@ static const u16 sYamaskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24814,7 +23301,6 @@ static const u16 sYamaskTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24825,16 +23311,12 @@ static const u16 sCofagrigusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24842,10 +23324,10 @@ static const u16 sCofagrigusTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24870,7 +23352,6 @@ static const u16 sYamaskGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -24895,7 +23376,6 @@ static const u16 sRunerigusTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -24910,30 +23390,26 @@ static const u16 sTirtougaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24946,30 +23422,27 @@ static const u16 sCarracostaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24985,26 +23458,23 @@ static const u16 sArchenTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -25018,27 +23488,24 @@ static const u16 sArcheopsTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ARCHEN @@ -25048,23 +23515,19 @@ static const u16 sTrubbishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25073,16 +23536,12 @@ static const u16 sGarbodorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -25090,10 +23549,11 @@ static const u16 sGarbodorTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25108,50 +23568,10 @@ static const u16 sZoruaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sZoroarkTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -25160,21 +23580,108 @@ static const u16 sZoroarkTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZoroarkTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sZoruaHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sZoroarkHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -25183,19 +23690,16 @@ static const u16 sZoroarkHisuianTeachableLearnset[] = { #if P_FAMILY_MINCCINO static const u16 sMinccinoTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -25205,7 +23709,6 @@ static const u16 sMinccinoTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -25219,27 +23722,26 @@ static const u16 sCinccinoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25252,18 +23754,14 @@ static const u16 sGothitaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25274,12 +23772,13 @@ static const u16 sGothitaTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25290,18 +23789,14 @@ static const u16 sGothoritaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25312,12 +23807,14 @@ static const u16 sGothoritaTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25329,8 +23826,6 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -25338,10 +23833,8 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25351,13 +23844,16 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25370,33 +23866,31 @@ static const u16 sSolosisTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25407,33 +23901,31 @@ static const u16 sDuosionTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25445,8 +23937,6 @@ static const u16 sReuniclusTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -25454,29 +23944,31 @@ static const u16 sReuniclusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -25491,24 +23983,22 @@ static const u16 sDucklettTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -25519,25 +24009,23 @@ static const u16 sSwannaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DUCKLETT @@ -25548,24 +24036,20 @@ static const u16 sVanilliteTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25575,24 +24059,20 @@ static const u16 sVanillishTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25602,25 +24082,21 @@ static const u16 sVanilluxeTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25629,27 +24105,26 @@ static const u16 sVanilluxeTeachableLearnset[] = { #if P_FAMILY_DEERLING static const u16 sDeerlingTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -25657,30 +24132,29 @@ static const u16 sDeerlingTeachableLearnset[] = { static const u16 sSawsbuckTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -25696,24 +24170,22 @@ static const u16 sEmolgaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25726,14 +24198,10 @@ static const u16 sKarrablastTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TOXIC, MOVE_COUNTER, MOVE_DOUBLE_EDGE, @@ -25741,7 +24209,6 @@ static const u16 sKarrablastTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -25753,21 +24220,20 @@ static const u16 sEscavalierTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -25777,17 +24243,14 @@ static const u16 sEscavalierTeachableLearnset[] = { #if P_FAMILY_FOONGUS static const u16 sFoongusTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -25798,32 +24261,31 @@ static const u16 sFoongusTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sAmoongussTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25837,18 +24299,14 @@ static const u16 sFrillishTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -25858,11 +24316,11 @@ static const u16 sFrillishTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25874,19 +24332,15 @@ static const u16 sJellicentTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -25896,11 +24350,11 @@ static const u16 sJellicentTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25914,29 +24368,27 @@ static const u16 sAlomomolaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25949,24 +24401,22 @@ static const u16 sJoltikTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25977,26 +24427,23 @@ static const u16 sGalvantulaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -26004,27 +24451,24 @@ static const u16 sGalvantulaTeachableLearnset[] = { #if P_FAMILY_FERROSEED static const u16 sFerroseedTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26032,31 +24476,29 @@ static const u16 sFerroseedTeachableLearnset[] = { static const u16 sFerrothornTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26068,21 +24510,17 @@ static const u16 sFerrothornTeachableLearnset[] = { static const u16 sKlinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26091,21 +24529,17 @@ static const u16 sKlinkTeachableLearnset[] = { static const u16 sKlangTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26114,22 +24548,18 @@ static const u16 sKlangTeachableLearnset[] = { static const u16 sKlinklangTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26147,23 +24577,20 @@ static const u16 sEelektrikTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26172,6 +24599,7 @@ static const u16 sEelektrikTeachableLearnset[] = { static const u16 sEelektrossTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, @@ -26179,31 +24607,30 @@ static const u16 sEelektrossTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26217,18 +24644,14 @@ static const u16 sElgyemTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -26238,11 +24661,11 @@ static const u16 sElgyemTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26254,8 +24677,6 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -26263,10 +24684,8 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -26276,11 +24695,11 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26296,15 +24715,11 @@ static const u16 sLitwickTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26317,7 +24732,6 @@ static const u16 sLitwickTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26330,15 +24744,11 @@ static const u16 sLampentTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26347,10 +24757,10 @@ static const u16 sLampentTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26363,16 +24773,12 @@ static const u16 sChandelureTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26381,10 +24787,10 @@ static const u16 sChandelureTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26394,33 +24800,32 @@ static const u16 sChandelureTeachableLearnset[] = { static const u16 sAxewTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26428,31 +24833,32 @@ static const u16 sAxewTeachableLearnset[] = { static const u16 sFraxureTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26467,29 +24873,29 @@ static const u16 sHaxorusTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26505,27 +24911,29 @@ static const u16 sCubchooTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26540,33 +24948,35 @@ static const u16 sBearticTeachableLearnset[] = { MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -26579,9 +24989,7 @@ static const u16 sCryogonalTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -26589,16 +24997,15 @@ static const u16 sCryogonalTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26609,14 +25016,10 @@ static const u16 sShelmetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -26625,7 +25028,6 @@ static const u16 sShelmetTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26634,21 +25036,20 @@ static const u16 sAccelgorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -26663,15 +25064,11 @@ static const u16 sStunfiskTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, @@ -26684,7 +25081,6 @@ static const u16 sStunfiskTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26709,7 +25105,6 @@ static const u16 sStunfiskGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -26727,26 +25122,23 @@ static const u16 sMienfooTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -26763,26 +25155,25 @@ static const u16 sMienshaoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -26801,18 +25192,14 @@ static const u16 sDruddigonTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -26822,11 +25209,13 @@ static const u16 sDruddigonTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26836,40 +25225,44 @@ static const u16 sDruddigonTeachableLearnset[] = { #if P_FAMILY_GOLETT static const u16 sGolettTeachableLearnset[] = { MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26877,44 +25270,48 @@ static const u16 sGolettTeachableLearnset[] = { static const u16 sGolurkTeachableLearnset[] = { MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26930,25 +25327,21 @@ static const u16 sPawniardTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26963,26 +25356,22 @@ static const u16 sBisharpTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26992,48 +25381,23 @@ static const u16 sBisharpTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sKingambitTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AIR_SLASH, MOVE_BRICK_BREAK, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -27047,25 +25411,22 @@ static const u16 sBouffalantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -27081,24 +25442,23 @@ static const u16 sRuffletTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -27110,30 +25470,51 @@ static const u16 sBraviaryTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sBraviaryHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -27147,15 +25528,11 @@ static const u16 sVullabyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -27164,11 +25541,13 @@ static const u16 sVullabyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -27179,16 +25558,13 @@ static const u16 sMandibuzzTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -27197,11 +25573,13 @@ static const u16 sMandibuzzTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VULLABY @@ -27217,17 +25595,13 @@ static const u16 sHeatmorTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -27235,10 +25609,10 @@ static const u16 sHeatmorTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27253,15 +25627,11 @@ static const u16 sDurantTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_ENDURE, @@ -27269,7 +25639,6 @@ static const u16 sDurantTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27281,15 +25650,11 @@ static const u16 sDeinoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -27298,10 +25663,10 @@ static const u16 sDeinoTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27311,15 +25676,11 @@ static const u16 sZweilousTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -27328,10 +25689,10 @@ static const u16 sZweilousTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27345,19 +25706,15 @@ static const u16 sHydreigonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -27368,11 +25725,11 @@ static const u16 sHydreigonTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27381,60 +25738,57 @@ static const u16 sHydreigonTeachableLearnset[] = { #if P_FAMILY_LARVESTA static const u16 sLarvestaTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sVolcaronaTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -27443,30 +25797,32 @@ static const u16 sVolcaronaTeachableLearnset[] = { #if P_FAMILY_COBALION static const u16 sCobalionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27476,33 +25832,33 @@ static const u16 sCobalionTeachableLearnset[] = { #if P_FAMILY_TERRAKION static const u16 sTerrakionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27511,34 +25867,35 @@ static const u16 sTerrakionTeachableLearnset[] = { #if P_FAMILY_VIRIZION static const u16 sVirizionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27553,27 +25910,27 @@ static const u16 sTornadusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -27587,29 +25944,27 @@ static const u16 sThundurusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -27626,45 +25981,46 @@ static const u16 sReshiramTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_RESHIRAM #if P_FAMILY_ZEKROM static const u16 sZekromTeachableLearnset[] = { + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -27672,23 +26028,26 @@ static const u16 sZekromTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27706,26 +26065,27 @@ static const u16 sLandorusTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -27734,15 +26094,14 @@ static const u16 sLandorusTeachableLearnset[] = { #if P_FAMILY_KYUREM static const u16 sKyuremTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BLIZZARD, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -27751,22 +26110,23 @@ static const u16 sKyuremTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KYUREM @@ -27774,34 +26134,34 @@ static const u16 sKyuremTeachableLearnset[] = { #if P_FAMILY_KELDEO static const u16 sKeldeoTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27815,18 +26175,14 @@ static const u16 sMeloettaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -27837,13 +26193,16 @@ static const u16 sMeloettaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27859,9 +26218,7 @@ static const u16 sGenesectTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -27869,19 +26226,18 @@ static const u16 sGenesectTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -27893,24 +26249,22 @@ static const u16 sChespinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -27919,12 +26273,13 @@ static const u16 sChespinTeachableLearnset[] = { MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27935,24 +26290,22 @@ static const u16 sQuilladinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -27960,12 +26313,14 @@ static const u16 sQuilladinTeachableLearnset[] = { MOVE_TAUNT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27976,6 +26331,7 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -27984,19 +26340,16 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28004,12 +26357,16 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_TAUNT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -28019,13 +26376,12 @@ static const u16 sChesnaughtTeachableLearnset[] = { #if P_FAMILY_FENNEKIN static const u16 sFennekinTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -28033,31 +26389,31 @@ static const u16 sFennekinTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBraixenTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -28065,9 +26421,7 @@ static const u16 sBraixenTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -28076,12 +26430,14 @@ static const u16 sBraixenTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -28094,8 +26450,6 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28103,10 +26457,9 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28116,12 +26469,15 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -28137,16 +26493,12 @@ static const u16 sFroakieTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28155,12 +26507,15 @@ static const u16 sFroakieTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28173,16 +26528,12 @@ static const u16 sFrogadierTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28191,13 +26542,17 @@ static const u16 sFrogadierTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28205,22 +26560,19 @@ static const u16 sGreninjaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28229,13 +26581,17 @@ static const u16 sGreninjaTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FROAKIE @@ -28250,16 +26606,12 @@ static const u16 sBunnelbyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -28267,13 +26619,14 @@ static const u16 sBunnelbyTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28287,17 +26640,13 @@ static const u16 sDiggersbyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -28305,13 +26654,18 @@ static const u16 sDiggersbyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28326,23 +26680,22 @@ static const u16 sFletchlingTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28355,23 +26708,22 @@ static const u16 sFletchinderTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28385,14 +26737,11 @@ static const u16 sTalonflameTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, @@ -28400,10 +26749,12 @@ static const u16 sTalonflameTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28426,28 +26777,25 @@ static const u16 sVivillonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCATTERBUG @@ -28460,17 +26808,13 @@ static const u16 sLitleoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28478,10 +26822,14 @@ static const u16 sLitleoTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28492,18 +26840,14 @@ static const u16 sPyroarTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28511,10 +26855,14 @@ static const u16 sPyroarTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_LITLEO @@ -28526,23 +26874,21 @@ static const u16 sFlabebeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28552,23 +26898,23 @@ static const u16 sFloetteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28578,19 +26924,23 @@ static const u16 sFloetteEternalFlowerTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28600,25 +26950,24 @@ static const u16 sFlorgesTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLABEBE @@ -28628,32 +26977,31 @@ static const u16 sSkiddoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -28663,32 +27011,33 @@ static const u16 sGogoatTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -28705,30 +27054,30 @@ static const u16 sPanchamTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28747,17 +27096,13 @@ static const u16 sPangoroTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -28768,12 +27113,15 @@ static const u16 sPangoroTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28788,23 +27136,17 @@ static const u16 sFurfrouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -28819,8 +27161,6 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -28828,9 +27168,8 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -28839,11 +27178,12 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28856,8 +27196,6 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28866,9 +27204,7 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28878,11 +27214,12 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28895,8 +27232,6 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28905,9 +27240,7 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28917,11 +27250,12 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28935,22 +27269,18 @@ static const u16 sHonedgeTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -28963,22 +27293,18 @@ static const u16 sDoubladeTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -28991,25 +27317,21 @@ static const u16 sAegislashTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29023,26 +27345,22 @@ static const u16 sSpritzeeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29053,8 +27371,6 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29062,8 +27378,6 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -29071,10 +27385,11 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29088,26 +27403,22 @@ static const u16 sSwirlixTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29119,27 +27430,25 @@ static const u16 sSlurpuffTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29155,16 +27464,13 @@ static const u16 sInkayTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -29172,12 +27478,13 @@ static const u16 sInkayTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -29190,8 +27497,6 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29199,8 +27504,7 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -29208,12 +27512,13 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_INKAY @@ -29229,18 +27534,14 @@ static const u16 sBinacleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -29249,13 +27550,13 @@ static const u16 sBinacleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29269,23 +27570,20 @@ static const u16 sBarbaracleTeachableLearnset[] = { MOVE_BULK_UP, MOVE_CUT, MOVE_DIG, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -29294,13 +27592,13 @@ static const u16 sBarbaracleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29313,27 +27611,25 @@ static const u16 sSkrelpTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29343,29 +27639,27 @@ static const u16 sDragalgeTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29374,30 +27668,28 @@ static const u16 sDragalgeTeachableLearnset[] = { #if P_FAMILY_CLAUNCHER static const u16 sClauncherTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29405,31 +27697,31 @@ static const u16 sClauncherTeachableLearnset[] = { static const u16 sClawitzerTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29444,29 +27736,26 @@ static const u16 sHelioptileTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -29478,30 +27767,32 @@ static const u16 sHelioliskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29518,24 +27809,21 @@ static const u16 sTyruntTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29549,25 +27837,22 @@ static const u16 sTyrantrumTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29581,9 +27866,7 @@ static const u16 sAmauraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -29592,23 +27875,22 @@ static const u16 sAmauraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29622,9 +27904,7 @@ static const u16 sAurorusTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -29634,24 +27914,23 @@ static const u16 sAurorusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29670,27 +27949,29 @@ static const u16 sHawluchaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -29706,24 +27987,23 @@ static const u16 sDedenneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29736,28 +28016,28 @@ static const u16 sCarbinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29768,14 +28048,10 @@ static const u16 sGoomyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, @@ -29788,7 +28064,6 @@ static const u16 sGoomyTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29798,26 +28073,24 @@ static const u16 sSliggooTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29826,37 +28099,38 @@ static const u16 sGoodraTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -29864,10 +28138,57 @@ static const u16 sGoodraTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sSliggooHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGoodraHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -29880,8 +28201,6 @@ static const u16 sKlefkiTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29889,18 +28208,18 @@ static const u16 sKlefkiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -29913,17 +28232,14 @@ static const u16 sPhantumpTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -29932,10 +28248,11 @@ static const u16 sPhantumpTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29948,18 +28265,15 @@ static const u16 sTrevenantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -29968,10 +28282,11 @@ static const u16 sTrevenantTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29986,17 +28301,13 @@ static const u16 sPumpkabooTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -30005,10 +28316,11 @@ static const u16 sPumpkabooTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_SNORE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30021,18 +28333,14 @@ static const u16 sGourgeistTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -30041,10 +28349,11 @@ static const u16 sGourgeistTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_SNORE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30057,28 +28366,25 @@ static const u16 sBergmiteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30090,37 +28396,52 @@ static const u16 sAvaluggTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sAvaluggHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -30133,16 +28454,13 @@ static const u16 sNoibatTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -30154,10 +28472,11 @@ static const u16 sNoibatTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -30171,15 +28490,11 @@ static const u16 sNoivernTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -30190,11 +28505,14 @@ static const u16 sNoivernTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NOIBAT @@ -30206,9 +28524,7 @@ static const u16 sXerneasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30216,19 +28532,19 @@ static const u16 sXerneasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -30242,15 +28558,11 @@ static const u16 sYveltalTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -30258,12 +28570,14 @@ static const u16 sYveltalTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_YVELTAL @@ -30275,26 +28589,24 @@ static const u16 sZygardeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ZYGARDE @@ -30305,30 +28617,30 @@ static const u16 sDiancieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DIANCIE @@ -30341,8 +28653,6 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30350,9 +28660,9 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -30364,13 +28674,14 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30383,8 +28694,6 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30392,9 +28701,9 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -30405,6 +28714,17 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_HOOPA @@ -30413,34 +28733,35 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { static const u16 sVolcanionTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30448,80 +28769,106 @@ static const u16 sVolcanionTeachableLearnset[] = { #if P_FAMILY_ROWLET static const u16 sRowletTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDartrixTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDecidueyeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sDecidueyeHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -30535,21 +28882,19 @@ static const u16 sLittenTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -30562,26 +28907,26 @@ static const u16 sTorracatTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sIncineroarTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -30591,23 +28936,25 @@ static const u16 sIncineroarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -30619,63 +28966,63 @@ static const u16 sIncineroarTeachableLearnset[] = { static const u16 sPopplioTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBrionneTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sPrimarinaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -30684,18 +29031,19 @@ static const u16 sPrimarinaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POPPLIO @@ -30707,20 +29055,18 @@ static const u16 sPikipekTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -30732,21 +29078,20 @@ static const u16 sTrumbeakTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -30757,22 +29102,23 @@ static const u16 sToucannonTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -30781,55 +29127,60 @@ static const u16 sToucannonTeachableLearnset[] = { #if P_FAMILY_YUNGOOS static const u16 sYungoosTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sGumshoosTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -30842,13 +29193,10 @@ static const u16 sGrubbinTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -30856,7 +29204,6 @@ static const u16 sGrubbinTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30867,20 +29214,18 @@ static const u16 sCharjabugTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30891,24 +29236,23 @@ static const u16 sVikavoltTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -30919,28 +29263,29 @@ static const u16 sCrabrawlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -30950,31 +29295,33 @@ static const u16 sCrabominableTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -30988,21 +29335,22 @@ static const u16 sOricorioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31015,25 +29363,23 @@ static const u16 sCutieflyTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -31043,14 +29389,12 @@ static const u16 sRibombeeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -31058,11 +29402,12 @@ static const u16 sRibombeeTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CUTIEFLY @@ -31070,23 +29415,26 @@ static const u16 sRibombeeTeachableLearnset[] = { #if P_FAMILY_ROCKRUFF static const u16 sRockruffTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31094,23 +29442,27 @@ static const u16 sLycanrocMiddayTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31119,18 +29471,33 @@ static const u16 sLycanrocMidnightTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -31138,18 +29505,27 @@ static const u16 sLycanrocDuskTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROCKRUFF @@ -31161,23 +29537,20 @@ static const u16 sWishiwashiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31189,24 +29562,21 @@ static const u16 sMareanieTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31216,25 +29586,24 @@ static const u16 sToxapexTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31246,24 +29615,24 @@ static const u16 sMudbrayTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31273,22 +29642,25 @@ static const u16 sMudsdaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31300,22 +29672,19 @@ static const u16 sDewpiderTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31323,26 +29692,26 @@ static const u16 sDewpiderTeachableLearnset[] = { static const u16 sAraquanidTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31351,22 +29720,20 @@ static const u16 sAraquanidTeachableLearnset[] = { #if P_FAMILY_FOMANTIS static const u16 sFomantisTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -31376,23 +29743,22 @@ static const u16 sLurantisTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -31403,23 +29769,21 @@ static const u16 sLurantisTeachableLearnset[] = { static const u16 sMorelullTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31428,23 +29792,23 @@ static const u16 sMorelullTeachableLearnset[] = { static const u16 sShiinoticTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31459,23 +29823,24 @@ static const u16 sSalanditTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -31486,23 +29851,26 @@ static const u16 sSalazzleTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SALANDIT @@ -31517,23 +29885,23 @@ static const u16 sStuffulTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -31550,22 +29918,25 @@ static const u16 sBewearTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -31576,70 +29947,70 @@ static const u16 sBewearTeachableLearnset[] = { #if P_FAMILY_BOUNSWEET static const u16 sBounsweetTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sSteeneeTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sTsareenaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BOUNSWEET @@ -31647,17 +30018,15 @@ static const u16 sTsareenaTeachableLearnset[] = { #if P_FAMILY_COMFEY static const u16 sComfeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -31668,43 +30037,47 @@ static const u16 sComfeyTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_COMFEY #if P_FAMILY_ORANGURU static const u16 sOranguruTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ORANGURU @@ -31719,14 +30092,11 @@ static const u16 sPassimianTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SHADOW_BALL, @@ -31736,12 +30106,16 @@ static const u16 sPassimianTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31752,21 +30126,21 @@ static const u16 sWimpodTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATERFALL, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -31776,16 +30150,15 @@ static const u16 sGolisopodTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SLUDGE_BOMB, @@ -31794,14 +30167,17 @@ static const u16 sGolisopodTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31813,22 +30189,23 @@ static const u16 sSandygastTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31838,23 +30215,25 @@ static const u16 sPalossandTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31877,7 +30256,6 @@ static const u16 sPyukumukuTeachableLearnset[] = { MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31889,24 +30267,23 @@ static const u16 sTypeNullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31918,15 +30295,12 @@ static const u16 sSilvallyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SANDSTORM, MOVE_SHADOW_BALL, @@ -31936,13 +30310,14 @@ static const u16 sSilvallyTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31956,15 +30331,12 @@ static const u16 sMiniorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, @@ -31972,13 +30344,13 @@ static const u16 sMiniorTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -31994,19 +30366,22 @@ static const u16 sKomalaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, - MOVE_RETURN, + MOVE_RAIN_DANCE, + MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32023,14 +30398,11 @@ static const u16 sTurtonatorTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SHOCK_WAVE, @@ -32041,9 +30413,10 @@ static const u16 sTurtonatorTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32054,24 +30427,23 @@ static const u16 sTogedemaruTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32083,29 +30455,27 @@ static const u16 sMimikyuTeachableLearnset[] = { MOVE_BULK_UP, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, - MOVE_MIMIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -32122,8 +30492,7 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -32132,7 +30501,6 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SNATCH, MOVE_SURF, @@ -32142,9 +30510,10 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32163,15 +30532,12 @@ static const u16 sDrampaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, @@ -32184,12 +30550,13 @@ static const u16 sDrampaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32203,24 +30570,21 @@ static const u16 sDhelmiseTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32237,23 +30601,22 @@ static const u16 sJangmoOTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32268,22 +30631,26 @@ static const u16 sHakamoOTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32300,27 +30667,31 @@ static const u16 sKommoOTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -32335,14 +30706,12 @@ static const u16 sTapuKokoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHOCK_WAVE, @@ -32353,11 +30722,12 @@ static const u16 sTapuKokoTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32369,14 +30739,12 @@ static const u16 sTapuLeleTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, @@ -32387,10 +30755,10 @@ static const u16 sTapuLeleTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32400,18 +30768,18 @@ static const u16 sTapuLeleTeachableLearnset[] = { static const u16 sTapuBuluTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, @@ -32419,11 +30787,12 @@ static const u16 sTapuBuluTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32434,17 +30803,16 @@ static const u16 sTapuBuluTeachableLearnset[] = { static const u16 sTapuFiniTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SURF, @@ -32453,12 +30821,12 @@ static const u16 sTapuFiniTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32480,8 +30848,6 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -32489,7 +30855,6 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, @@ -32499,12 +30864,15 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32516,16 +30884,14 @@ static const u16 sLunalaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, @@ -32536,12 +30902,13 @@ static const u16 sLunalaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32551,23 +30918,23 @@ static const u16 sLunalaTeachableLearnset[] = { static const u16 sNihilegoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32582,14 +30949,12 @@ static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, @@ -32598,7 +30963,6 @@ static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -32611,22 +30975,19 @@ static const u16 sPheromosaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SNATCH, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -32638,24 +30999,21 @@ static const u16 sXurkitreeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -32671,22 +31029,20 @@ static const u16 sCelesteelaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32699,17 +31055,14 @@ static const u16 sKartanaTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32725,22 +31078,22 @@ static const u16 sGuzzlordTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GUZZLORD @@ -32753,25 +31106,26 @@ static const u16 sNecrozmaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32783,23 +31137,29 @@ static const u16 sMagearnaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32813,25 +31173,26 @@ static const u16 sMarshadowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_THIEF, MOVE_TOXIC, MOVE_COUNTER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -32840,18 +31201,15 @@ static const u16 sMarshadowTeachableLearnset[] = { #if P_FAMILY_POIPOLE static const u16 sPoipoleTeachableLearnset[] = { MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -32863,22 +31221,20 @@ static const u16 sNaganadelTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POIPOLE @@ -32887,23 +31243,22 @@ static const u16 sNaganadelTeachableLearnset[] = { static const u16 sStakatakaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SKILL_SWAP, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_STAKATAKA @@ -32915,25 +31270,24 @@ static const u16 sBlacephalonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32948,22 +31302,23 @@ static const u16 sZeraoraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SNATCH, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32972,66 +31327,42 @@ static const u16 sZeraoraTeachableLearnset[] = { #if P_FAMILY_MELTAN static const u16 sMeltanTeachableLearnset[] = { - MOVE_HEADBUTT, - MOVE_REST, - MOVE_PROTECT, - MOVE_SUBSTITUTE, - MOVE_THUNDER_WAVE, - MOVE_TOXIC, - MOVE_THUNDERBOLT, - MOVE_FLASH_CANNON, - MOVE_SNORE, MOVE_FACADE, - MOVE_ROUND, + MOVE_PROTECT, + MOVE_REST, + MOVE_THUNDERBOLT, + MOVE_TOXIC, MOVE_ENDURE, MOVE_SLEEP_TALK, - MOVE_IRON_DEFENSE, - MOVE_GYRO_BALL, - MOVE_STEEL_BEAM, + MOVE_SNORE, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sMelmetalTeachableLearnset[] = { - MOVE_HEADBUTT, - MOVE_REST, - MOVE_PROTECT, - MOVE_SUBSTITUTE, - MOVE_FACADE, MOVE_BRICK_BREAK, - MOVE_THUNDER_WAVE, - MOVE_ROCK_SLIDE, - MOVE_THUNDER_PUNCH, - MOVE_TOXIC, - MOVE_ICE_PUNCH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, MOVE_EARTHQUAKE, - MOVE_SELF_DESTRUCT, - MOVE_SOLAR_BEAM, + MOVE_FACADE, MOVE_HYPER_BEAM, - MOVE_SUPERPOWER, - MOVE_FLASH_CANNON, MOVE_ICE_BEAM, - MOVE_MEGA_PUNCH, - MOVE_MEGA_KICK, - MOVE_GIGA_IMPACT, - MOVE_SNORE, + MOVE_PROTECT, + MOVE_REST, MOVE_ROCK_TOMB, - MOVE_ROUND, - MOVE_ELECTRIC_TERRAIN, - MOVE_BRUTAL_SWING, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_IRON_DEFENSE, - MOVE_GYRO_BALL, - MOVE_IRON_HEAD, - MOVE_HEAVY_SLAM, - MOVE_DARKEST_LARIAT, - MOVE_HIGH_HORSEPOWER, - MOVE_BODY_PRESS, - MOVE_STEEL_BEAM, - MOVE_STEEL_ROLLER, + MOVE_SNORE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MELTAN @@ -33039,6 +31370,7 @@ static const u16 sMelmetalTeachableLearnset[] = { #if P_FAMILY_GROOKEY static const u16 sGrookeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, @@ -33047,12 +31379,13 @@ static const u16 sGrookeyTeachableLearnset[] = { MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33060,19 +31393,23 @@ static const u16 sGrookeyTeachableLearnset[] = { static const u16 sThwackeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_REST, MOVE_SOLAR_BEAM, + MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33085,20 +31422,23 @@ static const u16 sRillaboomTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, MOVE_SOLAR_BEAM, + MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33122,7 +31462,6 @@ static const u16 sScorbunnyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33144,8 +31483,8 @@ static const u16 sRabootTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33167,10 +31506,11 @@ static const u16 sCinderaceTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCORBUNNY @@ -33188,11 +31528,11 @@ static const u16 sSobbleTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33200,6 +31540,7 @@ static const u16 sSobbleTeachableLearnset[] = { static const u16 sDrizzileTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -33208,11 +31549,11 @@ static const u16 sDrizzileTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33221,6 +31562,7 @@ static const u16 sInteleonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, @@ -33232,14 +31574,15 @@ static const u16 sInteleonTeachableLearnset[] = { MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SURF, + MOVE_TAUNT, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33259,11 +31602,12 @@ static const u16 sSkwovetTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33276,14 +31620,19 @@ static const u16 sGreedentTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33291,6 +31640,7 @@ static const u16 sGreedentTeachableLearnset[] = { #if P_FAMILY_ROOKIDEE static const u16 sRookideeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_FACADE, MOVE_FLY, @@ -33302,30 +31652,32 @@ static const u16 sRookideeTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sCorvisquireTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_FACADE, MOVE_FLY, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sCorviknightTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULK_UP, MOVE_FACADE, @@ -33333,16 +31685,19 @@ static const u16 sCorviknightTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROCK_SMASH, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -33370,7 +31725,6 @@ static const u16 sDottlerTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33392,7 +31746,6 @@ static const u16 sOrbeetleTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BLIPBUG @@ -33410,7 +31763,6 @@ static const u16 sNickitTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33426,10 +31778,10 @@ static const u16 sThievulTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_TAUNT, MOVE_THIEF, + MOVE_TORMENT, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33449,7 +31801,6 @@ static const u16 sGossifleurTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33467,7 +31818,6 @@ static const u16 sEldegossTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GOSSIFLEUR @@ -33484,7 +31834,6 @@ static const u16 sWoolooTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33497,13 +31846,14 @@ static const u16 sDubwoolTeachableLearnset[] = { MOVE_PROTECT, MOVE_REST, MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33519,12 +31869,13 @@ static const u16 sChewtleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33545,13 +31896,14 @@ static const u16 sDrednawTeachableLearnset[] = { MOVE_SANDSTORM, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33571,7 +31923,6 @@ static const u16 sYamperTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33588,10 +31939,10 @@ static const u16 sBoltundTeachableLearnset[] = { MOVE_ROAR, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33608,13 +31959,13 @@ static const u16 sRolycolyTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33630,11 +31981,14 @@ static const u16 sCarkolTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33653,15 +32007,17 @@ static const u16 sCoalossalTeachableLearnset[] = { MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROLYCOLY @@ -33675,6 +32031,7 @@ static const u16 sApplinTeachableLearnset[] = { }; static const u16 sFlappleTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, MOVE_FACADE, @@ -33685,10 +32042,11 @@ static const u16 sFlappleTeachableLearnset[] = { MOVE_REST, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33701,21 +32059,56 @@ static const u16 sAppletunTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #if P_GEN_9_CROSS_EVOS static const u16 sDipplinTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; + +static const u16 sHydrappleTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -33729,12 +32122,14 @@ static const u16 sSilicobraTeachableLearnset[] = { MOVE_FACADE, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33748,11 +32143,12 @@ static const u16 sSandacondaTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SILICOBRA @@ -33773,11 +32169,11 @@ static const u16 sCramorantTeachableLearnset[] = { MOVE_STEEL_WING, MOVE_SURF, MOVE_THIEF, + MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CRAMORANT @@ -33791,32 +32187,35 @@ static const u16 sArrokudaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBarraskewdaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIVE, MOVE_FACADE, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33831,19 +32230,22 @@ static const u16 sToxelTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; static const u16 sToxtricityAmpedTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -33851,9 +32253,9 @@ static const u16 sToxtricityAmpedTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -33863,13 +32265,17 @@ static const u16 sToxtricityAmpedTeachableLearnset[] = { static const u16 sToxtricityLowKeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -33877,9 +32283,9 @@ static const u16 sToxtricityLowKeyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -33900,7 +32306,6 @@ static const u16 sSizzlipedeTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33915,10 +32320,11 @@ static const u16 sCentiskorchTeachableLearnset[] = { MOVE_REST, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SIZZLIPEDE @@ -33942,7 +32348,6 @@ static const u16 sClobbopusTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33964,30 +32369,32 @@ static const u16 sGrapploctTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CLOBBOPUS #if P_FAMILY_SINISTEA static const u16 sSinisteaTeachableLearnset[] = { + MOVE_CALM_MIND, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_ENDURE, MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; static const u16 sPolteageistTeachableLearnset[] = { + MOVE_CALM_MIND, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, @@ -33997,11 +32404,11 @@ static const u16 sPolteageistTeachableLearnset[] = { MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_ENDURE, MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SINISTEA @@ -34015,13 +32422,16 @@ static const u16 sHatennaTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34034,13 +32444,16 @@ static const u16 sHattremTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34054,14 +32467,17 @@ static const u16 sHattereneTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34072,7 +32488,9 @@ static const u16 sHattereneTeachableLearnset[] = { static const u16 sImpidimpTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_REFLECT, MOVE_REST, MOVE_TAUNT, MOVE_THIEF, @@ -34083,7 +32501,6 @@ static const u16 sImpidimpTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34105,7 +32522,6 @@ static const u16 sMorgremTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34116,6 +32532,7 @@ static const u16 sGrimmsnarlTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -34133,7 +32550,6 @@ static const u16 sGrimmsnarlTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -34150,7 +32566,6 @@ static const u16 sMilceryTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -34168,9 +32583,9 @@ static const u16 sAlcremieTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MILCERY @@ -34182,15 +32597,18 @@ static const u16 sFalinksTeachableLearnset[] = { MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -34200,16 +32618,18 @@ static const u16 sFalinksTeachableLearnset[] = { static const u16 sPincurchinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34225,7 +32645,6 @@ static const u16 sSnomTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -34247,7 +32666,7 @@ static const u16 sFrosmothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SNOM @@ -34263,13 +32682,14 @@ static const u16 sStonjournerTeachableLearnset[] = { MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MEGA_KICK, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_STONJOURNER @@ -34281,19 +32701,22 @@ static const u16 sEiscueTeachableLearnset[] = { MOVE_DIVE, MOVE_FACADE, MOVE_HAIL, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_EISCUE @@ -34307,12 +32730,13 @@ static const u16 sIndeedeeMaleTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34328,12 +32752,13 @@ static const u16 sIndeedeeFemaleTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34352,10 +32777,10 @@ static const u16 sMorpekoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TORMENT, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -34369,11 +32794,13 @@ static const u16 sCufantTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_STRENGTH, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, @@ -34384,7 +32811,6 @@ static const u16 sCufantTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -34400,16 +32826,19 @@ static const u16 sCopperajahTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_STRENGTH, MOVE_TAUNT, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CUFANT @@ -34439,7 +32868,6 @@ static const u16 sDracozoltTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34470,7 +32898,6 @@ static const u16 sArctozoltTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34495,7 +32922,6 @@ static const u16 sDracovishTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DRACOVISH @@ -34520,7 +32946,6 @@ static const u16 sArctovishTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ARCTOVISH @@ -34536,21 +32961,50 @@ static const u16 sDuraludonTeachableLearnset[] = { MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; + +#if P_GEN_9_CROSS_EVOS +static const u16 sArchaludonTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -34563,7 +33017,6 @@ static const u16 sDreepyTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34572,13 +33025,17 @@ static const u16 sDreepyTeachableLearnset[] = { static const u16 sDrakloakTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDER, @@ -34587,7 +33044,6 @@ static const u16 sDrakloakTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34596,6 +33052,7 @@ static const u16 sDrakloakTeachableLearnset[] = { static const u16 sDragapultTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -34609,6 +33066,7 @@ static const u16 sDragapultTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDER, @@ -34618,7 +33076,6 @@ static const u16 sDragapultTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34634,10 +33091,10 @@ static const u16 sZacianTeachableLearnset[] = { MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -34646,20 +33103,25 @@ static const u16 sZacianTeachableLearnset[] = { #if P_FAMILY_ZAMAZENTA static const u16 sZamazentaTeachableLearnset[] = { + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34668,21 +33130,24 @@ static const u16 sZamazentaTeachableLearnset[] = { #if P_FAMILY_ETERNATUS static const u16 sEternatusTeachableLearnset[] = { MOVE_FACADE, + MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ETERNATUS @@ -34701,6 +33166,7 @@ static const u16 sKubfuTeachableLearnset[] = { MOVE_ROCK_SMASH, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34709,7 +33175,7 @@ static const u16 sKubfuTeachableLearnset[] = { MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34724,11 +33190,13 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_TAUNT, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34738,8 +33206,8 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34762,6 +33230,7 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_WATERFALL, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34771,8 +33240,8 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34780,31 +33249,35 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { #if P_FAMILY_ZARUDE static const u16 sZarudeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_DIG, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ZARUDE @@ -34826,7 +33299,6 @@ static const u16 sRegielekiTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34836,6 +33308,7 @@ static const u16 sRegielekiTeachableLearnset[] = { #if P_FAMILY_REGIDRAGO static const u16 sRegidragoTeachableLearnset[] = { MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, @@ -34847,7 +33320,7 @@ static const u16 sRegidragoTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_REGIDRAGO @@ -34861,6 +33334,7 @@ static const u16 sGlastrierTeachableLearnset[] = { MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_TAUNT, MOVE_TORMENT, MOVE_BODY_SLAM, @@ -34869,7 +33343,6 @@ static const u16 sGlastrierTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -34881,6 +33354,7 @@ static const u16 sSpectrierTeachableLearnset[] = { MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, MOVE_TAUNT, @@ -34889,7 +33363,6 @@ static const u16 sSpectrierTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34913,9 +33386,9 @@ static const u16 sCalyrexTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34935,6 +33408,7 @@ static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -34946,9 +33420,9 @@ static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -34975,9 +33449,9 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34986,702 +33460,365 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { #if P_FAMILY_ENAMORUS static const u16 sEnamorusTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ENAMORUS #if P_FAMILY_SPRIGATITO static const u16 sSprigatitoTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_U_TURN, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sFloragatoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_TRAILBLAZE, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; static const u16 sMeowscaradaTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BRICK_BREAK, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_DARK_PULSE, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, + MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_FRENZY_PLANT, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, - MOVE_POLLEN_PUFF, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SPRIGATITO #if P_FAMILY_FUECOCO static const u16 sFuecocoTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCrocalorTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSkeledirgeTeachableLearnset[] = { - MOVE_BLAST_BURN, - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IMPRISON, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, + MOVE_ROAR, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FUECOCO #if P_FAMILY_QUAXLY static const u16 sQuaxlyTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WATER_PLEDGE, MOVE_UNAVAILABLE, }; static const u16 sQuaxwellTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WATER_PLEDGE, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sQuaquavalTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HURRICANE, - MOVE_HYDRO_CANNON, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, + MOVE_TAUNT, + MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_U_TURN, - MOVE_WATER_PLEDGE, - MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_QUAXLY #if P_FAMILY_LECHONK static const u16 sLechonkTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_BULLET_SEED, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sOinkologneTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_BULLET_SEED, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_LECHONK #if P_FAMILY_TAROUNTULA static const u16 sTarountulaTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BUG_BUZZ, MOVE_BULLET_SEED, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, MOVE_GIGA_DRAIN, - MOVE_GRASS_KNOT, - MOVE_LEECH_LIFE, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSpidopsTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, MOVE_BULLET_SEED, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TAROUNTULA #if P_FAMILY_NYMBLE static const u16 sNymbleTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BUG_BUZZ, - MOVE_ENDURE, MOVE_FACADE, - MOVE_LEECH_LIFE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sLokixTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NYMBLE #if P_FAMILY_PAWMI static const u16 sPawmiTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_METAL_CLAW, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sPawmoTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_PLAY_ROUGH, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sPawmotTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_PRESS, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CLOSE_COMBAT, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_TOMB, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PAWMI @@ -35689,155 +33826,81 @@ static const u16 sPawmotTeachableLearnset[] = { #if P_FAMILY_TANDEMAUS static const u16 sTandemausTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BATON_PASS, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_WAVE, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sMausholdTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_WAVE, - MOVE_TRAILBLAZE, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TANDEMAUS #if P_FAMILY_FIDOUGH static const u16 sFidoughTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_ICE_FANG, - MOVE_MISTY_TERRAIN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sDachsbunTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_DRAINING_KISS, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_MISTY_TERRAIN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FIDOUGH @@ -35845,89 +33908,49 @@ static const u16 sDachsbunTeachableLearnset[] = { #if P_FAMILY_SMOLIV static const u16 sSmolivTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; static const u16 sDollivTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; static const u16 sArbolivaTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENCORE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_METRONOME, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, + MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SMOLIV @@ -35935,545 +33958,294 @@ static const u16 sArbolivaTeachableLearnset[] = { #if P_FAMILY_SQUAWKABILLY static const u16 sSquawkabillyTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_FLY, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, + MOVE_TORMENT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SQUAWKABILLY #if P_FAMILY_NACLI static const u16 sNacliTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sNaclstackTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGarganaclTeachableLearnset[] = { - MOVE_AVALANCHE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NACLI #if P_FAMILY_CHARCADET static const u16 sCharcadetTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, MOVE_PROTECT, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_REST, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sArmarougeTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AURA_SPHERE, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DARK_PULSE, - MOVE_DRAGON_PULSE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_WILL_O_WISP, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCeruledgeTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, MOVE_DRAGON_CLAW, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLING, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, - MOVE_PHANTOM_FORCE, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, - MOVE_X_SCISSOR, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHARCADET #if P_FAMILY_TADBULB static const u16 sTadbulbTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CHARGE_BEAM, - MOVE_CHILLING_WATER, - MOVE_CONFUSE_RAY, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, MOVE_WATER_PULSE, - MOVE_WILD_CHARGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sBelliboltTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CHARGE_BEAM, - MOVE_CHILLING_WATER, - MOVE_CONFUSE_RAY, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, + MOVE_TOXIC, MOVE_WATER_PULSE, - MOVE_WILD_CHARGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TADBULB #if P_FAMILY_WATTREL static const u16 sWattrelTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_CHARGE_BEAM, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_HURRICANE, MOVE_PROTECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sKilowattrelTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_CHARGE_BEAM, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WATTREL #if P_FAMILY_MASCHIFF static const u16 sMaschiffTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_ICE_FANG, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sMabosstiffTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_FANG, - MOVE_OUTRAGE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MASCHIFF #if P_FAMILY_SHROODLE static const u16 sShroodleTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_BATON_PASS, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, - MOVE_METRONOME, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sGrafaiaiTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_BATON_PASS, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_VENOSHOCK, - MOVE_X_SCISSOR, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SHROODLE @@ -36481,189 +34253,99 @@ static const u16 sGrafaiaiTeachableLearnset[] = { #if P_FAMILY_BRAMBLIN static const u16 sBramblinTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, - MOVE_LEAF_STORM, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sBrambleghastTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BRAMBLIN #if P_FAMILY_TOEDSCOOL static const u16 sToedscoolTeachableLearnset[] = { - MOVE_ACID_SPRAY, MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK_ROOM, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sToedscruelTeachableLearnset[] = { - MOVE_ACID_SPRAY, MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK_ROOM, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TOEDSCOOL #if P_FAMILY_KLAWF static const u16 sKlawfTeachableLearnset[] = { - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_METAL_CLAW, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KLAWF @@ -36671,343 +34353,191 @@ static const u16 sKlawfTeachableLearnset[] = { #if P_FAMILY_CAPSAKID static const u16 sCapsakidTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CRUNCH, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sScovillainTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CRUNCH, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CAPSAKID #if P_FAMILY_RELLOR static const u16 sRellorTeachableLearnset[] = { - MOVE_BUG_BUZZ, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, - MOVE_LEECH_LIFE, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_TOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_X_SCISSOR, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sRabscaTeachableLearnset[] = { - MOVE_BUG_BUZZ, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, MOVE_HYPER_BEAM, - MOVE_IMPRISON, - MOVE_IRON_DEFENSE, - MOVE_LEECH_LIFE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POUNCE, - MOVE_POWER_GEM, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STORED_POWER, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_RELLOR #if P_FAMILY_FLITTLE static const u16 sFlittleTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_MUD_SLAP, - MOVE_POUNCE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sEspathraTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_BRAVE_BIRD, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_POUNCE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLITTLE #if P_FAMILY_TINKATINK static const u16 sTinkatinkTeachableLearnset[] = { - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sTinkatuffTeachableLearnset[] = { MOVE_BRICK_BREAK, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sTinkatonTeachableLearnset[] = { MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -37015,864 +34545,488 @@ static const u16 sTinkatonTeachableLearnset[] = { #if P_FAMILY_WIGLETT static const u16 sWiglettTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sWugtrioTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WIGLETT #if P_FAMILY_BOMBIRDIER static const u16 sBombirdierTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_DARK_PULSE, - MOVE_DRILL_RUN, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICY_WIND, - MOVE_NASTY_PLOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, + MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BOMBIRDIER #if P_FAMILY_FINIZEN static const u16 sFinizenTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, + MOVE_DIVE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sPalafinTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BULK_UP, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_DRAIN_PUNCH, - MOVE_ENCORE, - MOVE_ENDURE, + MOVE_DIVE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_LIQUIDATION, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FINIZEN #if P_FAMILY_VAROOM static const u16 sVaroomTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_POISON_JAB, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SLUDGE_BOMB, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, - MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, - MOVE_UNAVAILABLE, -}; - -static const u16 sRevavroomTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_ENDURE, - MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HEAVY_SLAM, - MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_OVERHEAT, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRevavroomTeachableLearnset[] = { + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VAROOM #if P_FAMILY_CYCLIZAR static const u16 sCyclizarTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BODY_SLAM, - MOVE_CRUNCH, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_SPINNER, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, + MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_WILD_CHARGE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CYCLIZAR #if P_FAMILY_ORTHWORM static const u16 sOrthwormTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, + MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ORTHWORM #if P_FAMILY_GLIMMET static const u16 sGlimmetTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGlimmoraTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GLIMMET #if P_FAMILY_GREAVARD static const u16 sGreavardTeachableLearnset[] = { - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_ICE_FANG, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRICK, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sHoundstoneTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRICK, - MOVE_WILL_O_WISP, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GREAVARD #if P_FAMILY_FLAMIGO static const u16 sFlamigoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, MOVE_BULK_UP, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_ENDURE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FLING, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLAMIGO #if P_FAMILY_CETODDLE static const u16 sCetoddleTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CHILLING_WATER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCetitanTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CHILLING_WATER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CETODDLE #if P_FAMILY_VELUZA static const u16 sVeluzaTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, - MOVE_DRILL_RUN, - MOVE_ENDURE, - MOVE_GIGA_IMPACT, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, MOVE_PROTECT, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VELUZA #if P_FAMILY_DONDOZO static const u16 sDondozoTeachableLearnset[] = { - MOVE_AVALANCHE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, + MOVE_DIVE, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_LIQUIDATION, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DONDOZO #if P_FAMILY_TATSUGIRI static const u16 sTatsugiriTeachableLearnset[] = { - MOVE_BATON_PASS, - MOVE_CHILLING_WATER, - MOVE_DRACO_METEOR, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICY_WIND, - MOVE_NASTY_PLOT, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TATSUGIRI #if P_FAMILY_GREAT_TUSK static const u16 sGreatTuskTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYSHOCK, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GREAT_TUSK #if P_FAMILY_SCREAM_TAIL static const u16 sScreamTailTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_BATON_PASS, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BULK_UP, MOVE_CALM_MIND, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_DRAIN_PUNCH, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PUNCH, MOVE_FLAMETHROWER, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_IMPRISON, MOVE_LIGHT_SCREEN, - MOVE_METRONOME, - MOVE_MISTY_TERRAIN, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCREAM_TAIL #if P_FAMILY_BRUTE_BONNET static const u16 sBruteBonnetTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BULLET_SEED, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, - MOVE_OUTRAGE, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BRUTE_BONNET @@ -37880,354 +35034,176 @@ static const u16 sBruteBonnetTeachableLearnset[] = { #if P_FAMILY_FLUTTER_MANE static const u16 sFlutterManeTeachableLearnset[] = { MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_DARK_PULSE, - MOVE_DAZZLING_GLEAM, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FAKE_TEARS, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICY_WIND, - MOVE_IMPRISON, - MOVE_MAGICAL_LEAF, - MOVE_MISTY_TERRAIN, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POWER_GEM, MOVE_PROTECT, - MOVE_PSYBEAM, - MOVE_PSYSHOCK, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_TRICK_ROOM, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLUTTER_MANE #if P_FAMILY_SLITHER_WING static const u16 sSlitherWingTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, MOVE_BULK_UP, - MOVE_CLOSE_COMBAT, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEAVY_SLAM, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_WILD_CHARGE, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SLITHER_WING #if P_FAMILY_SANDY_SHOCKS static const u16 sSandyShocksTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARGE_BEAM, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SANDY_SHOCKS #if P_FAMILY_IRON_TREADS static const u16 sIronTreadsTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SMART_STRIKE, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, - MOVE_THUNDER_FANG, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_TREADS #if P_FAMILY_IRON_BUNDLE static const u16 sIronBundleTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_PUNCH, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_BUNDLE #if P_FAMILY_IRON_HANDS static const u16 sIronHandsTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, - MOVE_DRAIN_PUNCH, MOVE_EARTHQUAKE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_HANDS #if P_FAMILY_IRON_JUGULIS static const u16 sIronJugulisTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BODY_SLAM, - MOVE_CHARGE_BEAM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_EARTH_POWER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, - MOVE_FLASH_CANNON, MOVE_FLY, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_JUGULIS #if P_FAMILY_IRON_MOTH static const u16 sIronMothTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AIR_SLASH, - MOVE_BUG_BUZZ, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HURRICANE, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, - MOVE_POUNCE, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_U_TURN, - MOVE_VENOSHOCK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_MOTH @@ -38235,445 +35211,238 @@ static const u16 sIronMothTeachableLearnset[] = { #if P_FAMILY_IRON_THORNS static const u16 sIronThornsTeachableLearnset[] = { MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CHARGE_BEAM, - MOVE_CRUNCH, MOVE_DIG, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PUNCH, MOVE_FLAMETHROWER, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_METAL_CLAW, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SNARL, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_THORNS #if P_FAMILY_FRIGIBAX static const u16 sFrigibaxTeachableLearnset[] = { - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; static const u16 sArctibaxTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; static const u16 sBaxcaliburTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL static const u16 sGimmighoulTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_HEX, MOVE_LIGHT_SCREEN, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGholdengoTeachableLearnset[] = { - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HEX, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_PSYCHIC, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GIMMIGHOUL #if P_FAMILY_WO_CHIEN static const u16 sWoChienTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BULLET_SEED, - MOVE_DARK_PULSE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WO_CHIEN #if P_FAMILY_CHIEN_PAO static const u16 sChienPaoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, MOVE_BRICK_BREAK, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_GIGA_IMPACT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHIEN_PAO #if P_FAMILY_TING_LU static const u16 sTingLuTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_DARK_PULSE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TING_LU #if P_FAMILY_CHI_YU static const u16 sChiYuTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEX, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, - MOVE_NASTY_PLOT, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHI_YU #if P_FAMILY_ROARING_MOON static const u16 sRoaringMoonTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_SLASH, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_METAL_CLAW, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_U_TURN, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROARING_MOON @@ -38681,218 +35450,109 @@ static const u16 sRoaringMoonTeachableLearnset[] = { #if P_FAMILY_IRON_VALIANT static const u16 sIronValiantTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BRICK_BREAK, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_DRAIN_PUNCH, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENCORE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FALSE_SWIPE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HEX, + MOVE_DOUBLE_TEAM, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_IMPRISON, MOVE_LIGHT_SCREEN, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MAGICAL_LEAF, - MOVE_METRONOME, - MOVE_MISTY_TERRAIN, - MOVE_POISON_JAB, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, - MOVE_REVERSAL, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, MOVE_SKILL_SWAP, + MOVE_TAUNT, + MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDERBOLT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_VALIANT #if P_FAMILY_KORAIDON static const u16 sKoraidonTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_DRAIN_PUNCH, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_U_TURN, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KORAIDON #if P_FAMILY_MIRAIDON static const u16 sMiraidonTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_BODY_SLAM, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, - MOVE_OUTRAGE, MOVE_OVERHEAT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, + MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MIRAIDON #if P_FAMILY_WALKING_WAKE static const u16 sWalkingWakeTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MUD_SHOT, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WALKING_WAKE @@ -38900,78 +35560,281 @@ static const u16 sWalkingWakeTeachableLearnset[] = { #if P_FAMILY_IRON_LEAVES static const u16 sIronLeavesTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_SLASH, MOVE_BRICK_BREAK, MOVE_CALM_MIND, - MOVE_CLOSE_COMBAT, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FOCUS_BLAST, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IMPRISON, - MOVE_IRON_DEFENSE, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, - MOVE_PSYCHIC_TERRAIN, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, + MOVE_TAUNT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_LEAVES #if P_FAMILY_POLTCHAGEIST static const u16 sPoltchageistTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSinistchaTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POLTCHAGEIST #if P_FAMILY_OKIDOGI static const u16 sOkidogiTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OKIDOGI #if P_FAMILY_MUNKIDORI static const u16 sMunkidoriTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MUNKIDORI #if P_FAMILY_FEZANDIPITI static const u16 sFezandipitiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON static const u16 sOgerponTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const u16 sGougingFireTeachableLearnset[] = { + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const u16 sRagingBoltTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const u16 sIronBoulderTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const u16 sIronCrownTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const u16 sPecharuntTeachableLearnset[] = { + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 5529fe77a..1817bc19c 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -9587,6 +9587,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); #if P_GEN_9_CROSS_EVOS PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9738,6 +9739,10 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); #if P_GIGANTAMAX_FORMS PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10104,6 +10109,32 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +PLACEHOLDER_ANIM_SINGLE_FRAME(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +PLACEHOLDER_ANIM_SINGLE_FRAME(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +PLACEHOLDER_ANIM_SINGLE_FRAME(IronCrown); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosNormal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosTerastal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +PLACEHOLDER_ANIM_SINGLE_FRAME(Pecharunt); +#endif //P_FAMILY_PECHARUNT + static const union AnimCmd sAnim_Egg_1[] = { ANIMCMD_FRAME(0, 6), @@ -12363,6 +12394,7 @@ SINGLE_ANIMATION(AppletunGigantamax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Dipplin); +SINGLE_ANIMATION(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -12470,6 +12502,9 @@ SINGLE_ANIMATION(Duraludon); #if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY SINGLE_ANIMATION(Dreepy); @@ -12753,4 +12788,24 @@ SINGLE_ANIMATION(Fezandipiti); #if P_FAMILY_OGERPON SINGLE_ANIMATION(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +SINGLE_ANIMATION(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT +SINGLE_ANIMATION(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER +SINGLE_ANIMATION(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN +SINGLE_ANIMATION(IronCrown); +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS +SINGLE_ANIMATION(TerapagosNormal); +SINGLE_ANIMATION(TerapagosTerastal); +SINGLE_ANIMATION(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT +SINGLE_ANIMATION(Pecharunt); +#endif //P_FAMILY_PECHARUNT SINGLE_ANIMATION(Egg); diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index a3c6a7556..0733600b6 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -198,8 +198,6 @@ const u16 sBlitTiles_WideEllipse[] = INCBIN_U16("graphics/pokedex/blit_wide_elli static const u8 gExpandedPlaceholder_PokedexDescription[] = _(""); -#include "data/pokemon/pokedex_text.h" - static const struct BgTemplate sBgTemplates[] = { { .bg = 0, diff --git a/src/pokemon.c b/src/pokemon.c index 7afd48453..dfd5ec9a9 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -61,7 +61,6 @@ static EWRAM_DATA struct MonSpritesGfxManager *sMonSpritesGfxManager = NULL; static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); static bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); -static u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); static u8 GetNatureFromPersonality(u32 personality); static bool8 PartyMonHasStatus(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId); static bool8 IsPokemonStorageFull(void); @@ -621,10 +620,8 @@ static const struct SpindaSpot sSpindaSpotGraphics[] = {.x = 34, .y = 26, .image = INCBIN_U16("graphics/spinda_spots/spot_3.bin")} }; -// #include "data/pokemon/item_effects.h" - -static const s8 sNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = -{ // Attack Defense Speed Sp.Atk Sp.Def +const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = +{ // Attack Defense Speed Sp.Atk Sp. Def [NATURE_HARDY] = { 0, 0, 0, 0, 0 }, [NATURE_LONELY] = { +1, -1, 0, 0, 0 }, [NATURE_BRAVE] = { +1, 0, -1, 0, 0 }, @@ -658,10 +655,31 @@ static const s8 sNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/trainer_class_lookups.h" #include "data/pokemon/experience_tables.h" + +#if P_LVL_UP_LEARNSETS >= GEN_9 +#include "data/pokemon/level_up_learnsets/gen_9.h" // Scarlet/Violet +#elif P_LVL_UP_LEARNSETS >= GEN_8 +#include "data/pokemon/level_up_learnsets/gen_8.h" // Sword/Shield +#elif P_LVL_UP_LEARNSETS >= GEN_7 +#include "data/pokemon/level_up_learnsets/gen_7.h" // Ultra Sun/ Ultra Moon +#elif P_LVL_UP_LEARNSETS >= GEN_6 +#include "data/pokemon/level_up_learnsets/gen_6.h" // Omega Ruby/Alpha Sapphire +#elif P_LVL_UP_LEARNSETS >= GEN_5 +#include "data/pokemon/level_up_learnsets/gen_5.h" // Black 2/White 2 +#elif P_LVL_UP_LEARNSETS >= GEN_4 +#include "data/pokemon/level_up_learnsets/gen_4.h" // HeartGold/SoulSilver +#elif P_LVL_UP_LEARNSETS >= GEN_3 +#include "data/pokemon/level_up_learnsets/gen_3.h" // Ruby/Sapphire/Emerald +#elif P_LVL_UP_LEARNSETS >= GEN_2 +#include "data/pokemon/level_up_learnsets/gen_2.h" // Crystal +#elif P_LVL_UP_LEARNSETS >= GEN_1 +#include "data/pokemon/level_up_learnsets/gen_1.h" // Yellow +#endif + #include "data/pokemon/teachable_learnsets.h" -#include "data/pokemon/level_up_learnsets.h" #include "data/pokemon/form_species_tables.h" #include "data/pokemon/form_change_tables.h" + #include "data/pokemon/species_info.h" static const s8 sPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT] = @@ -4704,7 +4722,7 @@ u8 GetTrainerEncounterMusicId(u16 trainerId) return TRAINER_ENCOUNTER_MUSIC(trainerId); } -static u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) +u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) { // Because this is a u16 it will be unable to store the // result of the multiplication for any stat > 595 for a @@ -4712,17 +4730,17 @@ static u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) // Neither occur in the base game, but this can happen if // any Nature-affected base stat is increased to a value // above 248. The closest by default is Shuckle at 230. -#ifdef BUGFIX +// #ifdef BUGFIX u32 retVal; -#else - u16 retVal; -#endif +// #else +// u16 retVal; +// #endif // Don't modify HP, Accuracy, or Evasion by nature if (statIndex <= STAT_HP || statIndex > NUM_NATURE_STATS) return stat; - switch (sNatureStatTable[nature][statIndex - 1]) + switch (gNatureStatTable[nature][statIndex - 1]) { case 1: retVal = stat * 110;